之前的话,给大家详细的介绍了Set集合和List集合等,除此之外,还讲了一些高级应用等方面的内容,那么在实际的开发当中,泛型集合是用的比较的多的,那么下面的话就会为大家分享一下使用泛型集合来模拟实现某图书管理系统的查询功能的实例,一起来看看吧。

在图书管理系统当中,为了可以方便管理图书,将图书划分为了几个类别,每一个类别下面都有很多图书,每本图书都有相对应的类别,这就具备了一对多的关系映射,也就是一个类别对应多本图书。

那么在这样的情况之下,就能够使用Map映射来存储类别和图书信息,其键为Category(类别)类型,值为List 类型(Book

类为图书类),之后,使用嵌套循环遍历输出每个类别所对应的多个图书信息。

下面是实现步骤:

首先创建表示图书类别的Category类,在这个类当中,有2个属性:id和name,分别代表着编号和类别名称,并实现了它们的setXxx()和getXxx()方法。

具体内容:public class Category

{

private int id; // 类别编号

private String name; // 类别名称

public Category(int id, String name)

{

this.id = id;

this.name = name;

}

public String toString()

{

return "所属分类:" + this.name;

}

// 上面两个属性的setXxx()和getXxx()方法

public int getId()

{

return id;

}

public void setId(int id)

{

this.id = id;

}

public String getName()

{

return name;

}

public void setName(String name)

{

this.name = name;

}

}

创建表示图书明细信息的BookInfo类,在这个类当中,包含5个属性:id、name、price、author和startTime,分别表示图书编号、名称、价格、作者和出版时间,同样实现了它们的

setXxx()和getXxx()方法。

具体内容:public class BookInfo

{

private int id; // 编号

private String name; // 名称

private int price; // 价格

private String author; // 作者

private String startTime; // 出版时间

public BookInfo(int id, String name, int price, String author, String startTime)

{

this.id = id;

this.name = name;

this.price = price;

this.author = author;

this.startTime = startTime;

}

public String toString()

{

return this.id + "\t\t" + this.name + "\t\t" + this.price + "\t\t" + this.author + "\t\t" + this.startTime;

}

// 上面5个属性的 setXxx() 和 getXxx() 方法

public int getId()

{

return id;

}

public void setId(int id)

{

this.id = id;

}

public String getName()

{

return name;

}

public void setName(String name)

{

this.name = name;

}

public int getPrice()

{

return price;

}

public void setPrice(int price)

{

this.id = price;

}

public String getAuthor()

{

return author;

}

public void setAuthor(String author)

{

this.author = author;

}

public String getStartTime()

{

return startTime;

}

public void setStartTime(String startTime)

{

this.startTime = startTime;

}

}

创建CategoryDao类,在这个类当中,定义一个泛型的Map映射,其键为Category类型的对象,值为List类型的对象,并定义printCategoryInfo()方法,用来打印类别和图书明细信息。

具体代码:public class CategoryDao

{

// 定义泛型Map,存储图书信息

public static Map > categoryMap = new HashMap > ();

public static void printDeptmentInfo()

{

for (Category cate: categoryMap.keySet())

{

System.out.println("所属类别:" + cate.getName());

List  books = categoryMap.get(cate);

System.out.println("图书编号\t\t图书名称\t\t图书价格\t\t图书作者\t\t出版时间");

for (int i = 0; i

{

BookInfo b = books.get(i); // 获取图书

System.out.println(b.getId() + "\t\t" + b.getName() + "\t\t" + b.getPrice() + "\t\t" + b.getAuthor() +

"\t\t" + b.getStartTime());

}

System.out.println();

}

}

}

创建测试类Test17,在这个类当中,定义4个Deptment对象和8个People对象,并将8个People对象分成4组,存储到4个List集合中,之后,把4

个Deptment对象和4个List集合按照——对应的关系存储到DeptmentDao类中的peoplesMap映射中。

最后调用DeptmentDao类中的printDeptmentInfo()方法打印类别及对应的图书信息。

具体的代码:public class Test17

{

public static void main(String[] args)

{

Category category1 = new Category(1, "数据库"); // 创建类别信息

Category category2 = new Category(2, "程序设计"); // 创建类别信息

Category category3 = new Category(3, "平面设计"); // 创建类别信息

BookInfo book1 = new BookInfo(1, "细说 Java 编程", 25, "张晓玲", "2012-01-01"); // 创建图书信息

BookInfo book2 = new BookInfo(2, "影视后期处理宝典", 78, "刘水波", "2012-10-05"); // 创建图书信息

BookInfo book3 = new BookInfo(3, "MySQL 从入门到精通", 41, "王志亮", "2012-3-2"); // 创建图书信息

BookInfo book4 = new BookInfo(4, "Java 从入门到精通", 27, "陈奚静", "2012-11-01"); // 创建图书信息

BookInfo book5 = new BookInfo(5, "SQL Server 一百例", 68, "张晓玲", "2012-01-01"); // 创建图书信息

List  pList1 = new ArrayList  (); // 向类别 1 添加图书

pList1.add(book1);

pList1.add(book4);

List  pList2 = new ArrayList  (); // 向类别 2 添加图书

pList2.add(book3);

pList2.add(book5);

List  pList3 = new ArrayList  (); // 向类别 3 添加图书

pList3.add(book2);

CategoryDao.categoryMap.put(category1, pList1);

CategoryDao.categoryMap.put(category2, pList2);

CategoryDao.categoryMap.put(category3, pList3);

CategoryDao.printDeptmentInfo();

}

}

在这个程序当中,使用了泛型List和泛型Map分别存储图书类别和特定类别下的图书明细信息。

可以看出使用泛型不仅减少了代码的编写量,也提高了类型的安全性。

程序输出结果:所属类别:平面设计

图书编号  图书名称  图书价格  图书作者  出版时间

2  影视后期处理宝典  78  刘水波  2012-10-05

所属类别:数据库

图书编号  图书名称  图书价格  图书作者  出版时间

1  细说 Java 编程  25  张晓玲  2012-01-01

4  Java 从入门到精通  27  陈奚静  2012-11-01

所属类别:程序设计

图书编号  图书名称  图书价格  图书作者  出版时间

3  MySQL 从入门到精通  41  王志亮  2012-3-2

5  SQL Server 一百例  68  张晓玲  2012-01-01

关于java图书信息查询示例你都了解了吗?更多java实例,请继续关注奇Q工具网来进行了解吧。

推荐阅读:

图书查找java_java图书信息查询实例相关推荐

  1. 图书查找java_java第三季第一章:查找图书信息实现

    我开始写的时候也是遇到了困难,看了一个人的笔记后我有了思路,以下是我自己写的代码,但是运行的时候有点奇怪,输入的字符必须在输出那段话的下一行点击开始输入,开始不再,所以输入可能会出问题,有人知道为什么 ...

  2. 【数据库课设】图书馆资源管理系统 源码+流程图+结构设计(借还图书 逾期罚款 图书管理 读者管理 信息查询)python实现

    文章目录 一 实现功能 (1)管理员功能 (2)读者功能 二 数据流图 三 概念结构设计 四 文件目录 五 源码:main.py 六 运行截图 一 实现功能 (1)管理员功能 一个管理员编号对应一个密 ...

  3. elasticsearch group by java_java elasticsearch聚合查询实例详解

    现有索引数据: index:school type:student --------------------------------------------------- {"grade&q ...

  4. 在当当买了python怎么下载源代码-Python爬取当当、京东、亚马逊图书信息代码实例...

    注:1.本程序采用MSSQLserver数据库存储,请运行程序前手动修改程序开头处的数据库链接信息 2.需要bs4.requests.pymssql库支持 3.支持多线程 from bs4 impor ...

  5. 1.16 项目实例:Java图书信息查询

    前面详细介绍了 Java 中各集合的使用,像 Set 集合和 List 集合等,另外,还结合泛型讲解了一些高级应用.在实际开发中,泛型集合是较常用的,一般定义集合都会使用泛型的形式来定义.本节将使用泛 ...

  6. //5. 有若干本图书,图书信息包括图书书名、作者、出版社和价格。要求输出图书价格(const成员函数), //显示图书书名、作者、出版社(非const成员函数)、根据图书书名查找图书并显示相关信息等

    //5. 有若干本图书,图书信息包括图书书名.作者.出版社和价格.要求输出图书价格(const成员函数), //显示图书书名.作者.出版社(非const成员函数).根据图书书名查找图书并显示相关信息等 ...

  7. 使用所学Spring知识,实现简易的图书查询系统功能。实现查询全部图书。 根据书籍编号查询信息。 根据书名查询书籍信息。 根据状态查询书籍信息。

    相关 知识 >>> 相关 练习 >>> 实现要求: 使用所学Spring知识,实现简易的图书查询系统功能. 要求如下: 查询全部图书. 根据书籍编号查询信息. 根据 ...

  8. python爬虫如何爬亚马逊_Python爬取当当、京东、亚马逊图书信息代码实例

    注:1.本程序采用MSSQLserver数据库存储,请运行程序前手动修改程序开头处的数据库链接信息 2.需要bs4.requests.pymssql库支持 3.支持多线程 from bs4 impor ...

  9. python爬取京东书籍_Python爬取当当、京东、亚马逊图书信息代码实例

    注:1.本程序采用MSSQLserver数据库存储,请运行程序前手动修改程序开头处的数据库链接信息 2.需要bs4.requests.pymssql库支持 3.支持多线程 from bs4 impor ...

  10. 用Python做一个控制台程序实现图书管理器的简单功能,例如添加图书、查询库里的图书、删除图书、修改书籍信息、显示书籍信息,或者是借阅/归还...

    为了实现图书管理器的功能,需要考虑如下几点: 需要定义一个图书类,包含书名.作者.出版社.借阅状态.借阅人等属性,可以使用类的构造函数来初始化这些属性. 需要定义一个图书管理器类,包含一个用于存储图书 ...

最新文章

  1. SSH框架中配置log4j的方法
  2. mysql 5.6 使用ssl_MySQL 5.6--------SSL连接最佳实战
  3. SEO优化篇 - 搜索引擎抓取href=#!锚点
  4. docker 开启服务
  5. 【汇编优化】之MIPS架构优化
  6. 批处理获取网卡名称(附修改IP、网关、DNS脚本)
  7. CSDN博客下载器v1.0发布(Windows版本)
  8. pywin32库 : Python 操作 windows 系统 API
  9. 电商产品经理必修课之学员招募及在线课程学习
  10. matlab神经网络工具箱简介
  11. 强大的图表制作,前端数据可视化,echarts
  12. 团队管理(一)-会议纪要的高效记录和执行
  13. webrtc视频卡顿分析一本地视频卡顿
  14. IS_REACHABLE
  15. 常用html/css/js学习(会持续更新)
  16. OJ题库1015: 计算时间间隔
  17. python 字符串输出报错 'utf-8' codec can't encode characters in position
  18. java高级之JDBC的基本操作知识
  19. 什么是UTM参数?这些你知道吗
  20. Java密码连接redis

热门文章

  1. 六种用JavaScript检测出当前浏览器是否是无头浏览器( selenium headless browser)
  2. 信息差赚钱2020年怎么做?看完全部就会了!
  3. Algorithms-3.2 Binary Search Trees 二叉查找树
  4. Verilog实现数字时钟
  5. ADNI下载临床数据
  6. 熟悉继承(java)
  7. PS笔刷:80个自定义绘画画笔工具笔刷套装
  8. 用计算机弹刚好一点,《计算机组成原理》作业解答(14级)
  9. ubuntu20.04下编译仿真智能车racecar的错误解决汇总
  10. 【MUI框架】学习笔记整理 Day 2