日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

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

發布時間:2025/3/20 java 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1.16 项目实例:Java图书信息查询 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前面詳細介紹了 Java 中各集合的使用,像 Set 集合和 List 集合等,另外,還結合泛型講解了一些高級應用。在實際開發中,泛型集合是較常用的,一般定義集合都會使用泛型的形式來定義。本節將使用泛型集合來模擬實現某圖書管理系統的查詢功能。

在圖書管理系統中為了方便管理圖書,將圖書劃分為幾個類別。每個類別下有很多圖書,每本圖書都有相對應的類別,這就具備了一對多的關系映射,即一個類別對應多本圖書。

在這種情況下就可以**使用 Map 映射來存儲類別和圖書信息其鍵為 Category(類別)類型值為 List<Book> 類型(Book 類為圖書類)**,然后使用嵌套循環遍歷輸出每個類別所對應的多個圖書信息。具體的實現步驟如下。

1)創建表示圖書類別的 Category 類,在該類中有兩個屬性: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;} }

2)創建表示圖書明細信息的 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;} }

3)創建 CategoryDao 類,在該類中定義一個泛型的 Map 映射,其鍵為 Category 類型的對象,值為 List<BookInfo> 類型的對象,并定義 printCategoryInfo() 方法,用于打印類別和圖書明細信息。具體代碼如下:

public class CategoryDao {// 定義泛型Map,存儲圖書信息public static Map<Category, List<BookInfo>> categoryMap = new HashMap<Category, List<BookInfo>>();public static void printDeptmentInfo() {for (Category cate : categoryMap.keySet()) {System.out.println("所屬類別:" + cate.getName());List<BookInfo> books = categoryMap.get(cate);System.out.println("圖書編號\t\t圖書名稱\t\t圖書價格\t\t圖書作者\t\t出版時間");for (int i = 0; i < books.size(); 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();}} }

4)創建測試類 Test17,在該類中定義 4 個 Deptment 對象和 8 個 People 對象,并將 8 個 People 對象分成 4 組,存儲到 4 個 List 集合中,然后將 4 個 Deptment 對象和 4 個 List 集合按照——對應的關系存儲到 DeptmentDao 類中的 peoplesMap 映射中。最后調用 DeptmentDao 類中的 printDeptmentInfo() 方法打印類別及對應的圖書信息。具體的代碼如下:

public class Test{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<BookInfo> pList1 = new ArrayList<BookInfo>(); // 向類別 1 添加圖書pList1.add(book1);pList1.add(book4);List<BookInfo> pList2 = new ArrayList<BookInfo>(); // 向類別 2 添加圖書pList2.add(book3);pList2.add(book5);List<BookInfo> pList3 = new ArrayList<BookInfo>(); // 向類別 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.0 劉水波 2012-10-05所屬類別為:數據庫 圖書編號 圖書名稱 圖書價格 圖書作者 出版時間 1 細說 Java 編程 25.0 張曉玲 2012-01-01 4 Java 從入門到精通 27.0 陳奚靜 2012-11-01所屬類別為:程序設計 圖書編號 圖書名稱 圖書價格 圖書作者 出版時間 3 MySQL 從入門到精通 41.0 王志亮 2012-3-2 5 SQL Server 一百例 68.0 張曉玲 2012-01-01 《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的1.16 项目实例:Java图书信息查询的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。