Java程序設計案例教程 第2版 習題答案 習題7_第1頁
Java程序設計案例教程 第2版 習題答案 習題7_第2頁
Java程序設計案例教程 第2版 習題答案 習題7_第3頁
Java程序設計案例教程 第2版 習題答案 習題7_第4頁
Java程序設計案例教程 第2版 習題答案 習題7_第5頁
已閱讀5頁,還剩1頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

PAGE1【習題7】一、選擇題CBBAC二、填空題1、集(Set)列表(List)2、映射(Map)3、Iterator4、LinkedListArrayList5、HastSetTreeSet三、簡答題1、簡述集合容器的分類。答:集合容器類共分為兩類,分別是:集合(Collection):一個集合就是存儲一組對象的容器,Java集合框架支持集(Set)和列表(List)兩種類型的集合。Set(集):集合中的對象(也稱為元素element)沒有次序之分,且沒有重復對象。List(列表):集合中的對象按照索引位置排序,可以有重復對象,可以按索引位置檢索對象。映射(Map):集合中的每個對象都由一個特殊的“鍵-值”對組成。鍵對象不能重復,值對象可以重復。2、簡述Iterator接口中主要方法。答:Iterator接口中主要方法有:booleanhasNext():判斷是否存在另一個可以訪問的元素Objectnext():返回下一個可以訪問的元素。通常與hasNext()方法結合使用,以免產生異常。voidremove():刪除上次訪問返回的對象。3、簡述Set接口和List接口的差異。答:Set接口繼承Collection接口,與List接口比較相似,但又有兩個典型差異,分別是:Set中不保存重復的元素(List中可以有重復元素)Set中不能保證元素順序信息(List中的元素順序是確定的)四、編程題1、創建一個book包,里面包含第5章編寫的Book類,設計一個管理個人藏書的IMyBook接口,包含添加藏書、根據書名查找藏書、根據作者查找藏書、計算藏書總數和計算藏書總金額的抽象方法。分別用List、Set、Map3種接口編寫MyBookList、MyBookSet和MyBookMap類管理Book類,實現IMyBook中的抽象方法。編寫BookTest類進行測試。packagechap07.book;importjava.util.List;importchap05.Book;publicinterfaceIMyBook{ publicvoidadd(Bookbook); publicBookfindByTitle(Stringtitle); publicList<Book>findByAuthor(Stringauthor); publicfloattotalAmount(); publicintbookCount();}packagechap07.book;importjava.util.LinkedList;importjava.util.List;importchap05.Book;publicclassMyBookListimplementsIMyBook{ privateList<Book>bookList=newLinkedList<Book>(); publicvoidadd(Bookbook){ bookList.add(book); } publicBookfindByTitle(Stringtitle){ for(Bookb:bookList){ if(b.getTitle().equals(title)){ returnb; } } returnnull; } publicList<Book>findByAuthor(Stringauthor){ List<Book>list=newLinkedList<Book>(); for(Bookb:bookList){ if(b.getAuthor().equals(author)){ list.add(b); } } returnlist; } publicfloattotalAmount(){ floatsum=0; for(Bookb:bookList){ sum+=b.getPrice(); } returnsum; } publicintbookCount(){ returnbookList.size(); }}packagechap07.book;importjava.util.HashMap;importjava.util.LinkedList;importjava.util.List;importjava.util.Map;importchap05.Book;publicclassMyBookMapimplementsIMyBook{ privateMap<String,Book>bookMap=newHashMap<String,Book>(); publicvoidadd(Bookbook){ bookMap.put(book.getTitle(),book); } publicBookfindByTitle(Stringtitle){ return(bookMap.get(title)); } publicList<Book>findByAuthor(Stringauthor){ List<Book>list=newLinkedList<Book>(); for(Bookb:bookMap.values()){ if(b.getAuthor().equals(author)){ list.add(b); } } returnlist; } publicfloattotalAmount(){ floatsum=0; for(Bookb:bookMap.values()){ sum+=b.getPrice(); } returnsum; } publicintbookCount(){ returnbookMap.size(); }}packagechap07.book;importjava.util.HashSet;importjava.util.LinkedList;importjava.util.List;importjava.util.Set;importchap05.Book;publicclassMyBookSetimplementsIMyBook{ privateSet<Book>bookSet=newHashSet<Book>(); publicvoidadd(Bookbook){ bookSet.add(book); } publicBookfindByTitle(Stringtitle){ for(Bookb:bookSet){ if(b.getTitle().equals(title)){ returnb; } } returnnull; } publicList<Book>findByAuthor(Stringauthor){ List<Book>list=newLinkedList<Book>(); for(Bookb:bookSet){ if(b.getAuthor().equals(author)){ list.add(b); } } returnlist; } publicfloattotalAmount(){ floatsum=0; for(Bookb:bookSet){ sum+=b.getPrice(); } returnsum; } publicintbookCount(){ returnbookSet.size(); }}packagechap07.book;importjava.util.List;importchap05.Book;publicclassBookTest{ publicstaticvoidmain(String[]args){ //孫瀏毅、Java寶典、98.00、電子工業出版社、2009 IMyBookmyBook=newMyBookMap(); Bookbook=newBook(); book.setAuthor("孫瀏毅"); book.setTitle("Java寶典"); book.setPrice(98.00F); book.setPublisher("電子工業出版社"); book.setPublishedYear(2009); myBook.add(book); book=newBook(); book.setAuthor("孫瀏毅"); book.setTitle("Java寶典(第二版)"); book.setPrice(198.00F); book.setPublisher("電子工業出版社"); book.setPublishedYear(2009); myBook.add(book); book=newBook(); book.setAuthor("黃能耿"); book.setTitle("Java語言程序設計及實訓"); book.setPrice(28.00F); book.setPublisher("機械工業出版社"); book.setPublishedYear(2009); myBook.add(book); //以下進行測試 System.out.println("圖書總數:"); System.out.println(myBook.bookCount()); System.out.println("\n圖書總金額:"); System.out.println(myBook.totalAmount()); System.out.println("\n查找《Java語言程序設計》:"); printBook(myBook.findByTitle("Java語言程序設計")); System.out.println("\n查找《Java語言程序設計及實訓》:"); printBook(myBook.findByTitle("Java語言程序設計及實訓")); System.out.println("\n查找“孫瀏毅”的書:"); List<Book>list=myBook.findByAuthor("孫瀏毅"); for(Bookb:list){ printBook(b); } } staticvoidprintBook(Bookbook){ System.out.println("\n圖書的信息是:"); if(book==null){ System.out.println("無結果."); retur

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論