乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Java圖書信息查詢

       碼農(nóng)9527 2021-09-24

          前面詳細(xì)介紹了Java中各集合的使用,像Set集合和List集合等,另外,還結(jié)合泛型講解了一些高級應(yīng)用。在實(shí)際開發(fā)中,泛型集合是較常用的,一般定義集合都會使用泛型的形式來定義。本節(jié)將使用泛型集合來模擬實(shí)現(xiàn)某圖書管理系統(tǒng)的查詢功能。

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

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

          1)創(chuàng)建表示圖書類別的Category類,在該類中有兩個屬性:id和name,分別表示編號和類別名稱,并實(shí)現(xiàn)了它們的setXxx()和getXxx()方法,具體內(nèi)容如下:

      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;
       }
      }123456789101112131415161718192021222324復(fù)制代碼類型:[java]

          2)創(chuàng)建表示圖書明細(xì)信息的BookInfo類,在該類中包含5個屬性:id、name、price、author和startTime,分別表示圖書編號、名稱、價格、作者和出版時間,同樣實(shí)現(xiàn)了它們的setXxx()和getXxx()方法,具體內(nèi)容如下:

      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;
       }
      }123456789101112131415161718192021222324252627282930313233343536373839404142434445464748復(fù)制代碼類型:[java]

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

      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圖書作者\(yùn)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();
        }
       }
      }123456789101112131415161718復(fù)制代碼類型:[java]

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

      public class Test17 { public static void main(String[] args) {
        Category category1 = new Category(1, "數(shù)據(jù)庫"); // 創(chuàng)建類別信息
        Category category2 = new Category(2, "程序設(shè)計"); // 創(chuàng)建類別信息
        Category category3 = new Category(3, "平面設(shè)計"); // 創(chuàng)建類別信息
        BookInfo book1 = new BookInfo(1, "細(xì)說 Java 編程", 25, "張曉玲", "2012-01-01"); // 創(chuàng)建圖書信息
        BookInfo book2 = new BookInfo(2, "影視后期處理寶典", 78, "劉水波", "2012-10-05"); // 創(chuàng)建圖書信息
        BookInfo book3 = new BookInfo(3, "MySQL 從入門到精通", 41, "王志亮", "2012-3-2"); // 創(chuàng)建圖書信息
        BookInfo book4 = new BookInfo(4, "Java 從入門到精通", 27, "陳奚靜", "2012-11-01"); // 創(chuàng)建圖書信息
        BookInfo book5 = new BookInfo(5, "SQL Server 一百例", 68, "張曉玲", "2012-01-01"); // 創(chuàng)建圖書信息
        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();
       }
      }123456789101112131415161718192021222324復(fù)制代碼類型:[java]

          在該程序中,使用了泛型List和泛型Map分別存儲圖書類別和特定類別下的圖書明細(xì)信息。從中可以看出使用泛型不僅減少了代碼的編寫量,也提高了類型的安全性。

          運(yùn)行該程序,輸出的結(jié)果如下所示。

      所屬類別:平面設(shè)計
      圖書編號  圖書名稱  圖書價格  圖書作者  出版時間2  影視后期處理寶典  78  劉水波  2012-10-05所屬類別:數(shù)據(jù)庫
      圖書編號  圖書名稱  圖書價格  圖書作者  出版時間1  細(xì)說 Java 編程  25  張曉玲  2012-01-014  Java 從入門到精通  27  陳奚靜  2012-11-01所屬類別:程序設(shè)計
      圖書編號  圖書名稱  圖書價格  圖書作者  出版時間3  MySQL 從入門到精通  41  王志亮  2012-3-25  SQL Server 一百例  68  張曉玲  2012-01-01

        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多