Java程序設(shè)計案例教程 第2版 習(xí)題答案 習(xí)題7_第1頁
Java程序設(shè)計案例教程 第2版 習(xí)題答案 習(xí)題7_第2頁
Java程序設(shè)計案例教程 第2版 習(xí)題答案 習(xí)題7_第3頁
Java程序設(shè)計案例教程 第2版 習(xí)題答案 習(xí)題7_第4頁
Java程序設(shè)計案例教程 第2版 習(xí)題答案 習(xí)題7_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

PAGE1【習(xí)題7】一、選擇題CBBAC二、填空題1、集(Set)列表(List)2、映射(Map)3、Iterator4、LinkedListArrayList5、HastSetTreeSet三、簡答題1、簡述集合容器的分類。答:集合容器類共分為兩類,分別是:集合(Collection):一個集合就是存儲一組對象的容器,Java集合框架支持集(Set)和列表(List)兩種類型的集合。Set(集):集合中的對象(也稱為元素element)沒有次序之分,且沒有重復(fù)對象。List(列表):集合中的對象按照索引位置排序,可以有重復(fù)對象,可以按索引位置檢索對象。映射(Map):集合中的每個對象都由一個特殊的“鍵-值”對組成。鍵對象不能重復(fù),值對象可以重復(fù)。2、簡述Iterator接口中主要方法。答:Iterator接口中主要方法有:booleanhasNext():判斷是否存在另一個可以訪問的元素Objectnext():返回下一個可以訪問的元素。通常與hasNext()方法結(jié)合使用,以免產(chǎn)生異常。voidremove():刪除上次訪問返回的對象。3、簡述Set接口和List接口的差異。答:Set接口繼承Collection接口,與List接口比較相似,但又有兩個典型差異,分別是:Set中不保存重復(fù)的元素(List中可以有重復(fù)元素)Set中不能保證元素順序信息(List中的元素順序是確定的)四、編程題1、創(chuàng)建一個book包,里面包含第5章編寫的Book類,設(shè)計一個管理個人藏書的IMyBook接口,包含添加藏書、根據(jù)書名查找藏書、根據(jù)作者查找藏書、計算藏書總數(shù)和計算藏書總金額的抽象方法。分別用List、Set、Map3種接口編寫MyBookList、MyBookSet和MyBookMap類管理Book類,實(shí)現(xiàn)IMyBook中的抽象方法。編寫B(tài)ookTest類進(jìn)行測試。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、電子工業(yè)出版社、2009 IMyBookmyBook=newMyBookMap(); Bookbook=newBook(); book.setAuthor("孫瀏毅"); book.setTitle("Java寶典"); book.setPrice(98.00F); book.setPublisher("電子工業(yè)出版社"); book.setPublishedYear(2009); myBook.add(book); book=newBook(); book.setAuthor("孫瀏毅"); book.setTitle("Java寶典(第二版)"); book.setPrice(198.00F); book.setPublisher("電子工業(yè)出版社"); book.setPublishedYear(2009); myBook.add(book); book=newBook(); book.setAuthor("黃能耿"); book.setTitle("Java語言程序設(shè)計及實(shí)訓(xùn)"); book.setPrice(28.00F); book.setPublisher("機(jī)械工業(yè)出版社"); book.setPublishedYear(2009); myBook.add(book); //以下進(jìn)行測試 System.out.println("圖書總數(shù):"); System.out.println(myBook.bookCount()); System.out.println("\n圖書總金額:"); System.out.println(myBook.totalAmount()); System.out.println("\n查找《Java語言程序設(shè)計》:"); printBook(myBook.findByTitle("Java語言程序設(shè)計")); System.out.println("\n查找《Java語言程序設(shè)計及實(shí)訓(xùn)》:"); printBook(myBook.findByTitle("Java語言程序設(shè)計及實(shí)訓(xùn)")); 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("無結(jié)果."); retur

溫馨提示

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

評論

0/150

提交評論