Java容器類教學課件_第1頁
Java容器類教學課件_第2頁
Java容器類教學課件_第3頁
Java容器類教學課件_第4頁
Java容器類教學課件_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

Java容器類本篇說明介紹Java容器類常用用法主要目的:針對后續(xù)開發(fā)所需知識點,不全面介紹本篇內(nèi)容Java數(shù)組Java容器類一、數(shù)組數(shù)組是相同類型的、用一個標識符名稱封裝到一起的一個基本類型數(shù)據(jù)序列或對象序列數(shù)組通過方括號下標操作符[]來定義和使用定義數(shù)組數(shù)組初始化int[]ainta[]int[]a;a=newint[10];

int[]a=newint[10];

對象數(shù)組(假定已定義Student類)數(shù)組元素個數(shù)是固定的,在定義和初始化時指定訪問時通過下標(從0開始,最大下標數(shù)—數(shù)組長度-1),一旦訪問下標過界,會出現(xiàn)運行期錯誤定義和初始化數(shù)組后,數(shù)組尺寸不能改變Student[]s=newStudent[10];

數(shù)組示例采用JUnit單元測試導入JUnitJAR包編寫單元測試方法其他機器拷回去的項目,如果JAR包找不到(位置不對),把JAR包刪掉重新導入單元測試方法增加注解@Test,如果@不自動提示,增加提示window-Preference-Java-Editor-ContentAssistantArrayTestProject二、Java容器類2.1容器類概念Java容器:JavaAPI所提供的一系列類,可以用于動態(tài)存放多個對象JDK所提供的容器API位于java.util包內(nèi)2.2JavaCollectionsFramework2.3Java容器常用接口Collection接口——定義了存取對象的方法,其中兩個常用的子接口List接口:存放的元素有序且允許元素有重復Set接口:存放的元素不允許重復Map接口:定義了存儲“鍵(Key)—值(Value)映射對”的方法程序中經(jīng)常使用的:List接口、Set接口和Map接口Java容器類和數(shù)組的區(qū)別數(shù)組容量是固定的,容器類的容量可以自動調(diào)節(jié)容器類只能用來存放對象,不能存儲基本數(shù)據(jù)類型(可以存儲基本數(shù)據(jù)類型的包裝類),數(shù)組沒有此限制2.3.1ListList接口是Collection的子接口,實現(xiàn)List接口的容器類中的元素是有順序的,而且可以重復元素:對象、實例有序:元素存入的順序與取出順序一致重復:兩個對象通過equals方法比較后相等List容器中的元素都對應一個整數(shù)型的序號記載其在容器中的位置,可以根據(jù)序號存取容器中的元素List接口的常用方法voidadd(Objectelement);//添加元素,默認添加到最后voidadd(intindex,Objectelement);//按指定序號添加元素Objectget(intindex);//根據(jù)指定序號獲取元素Objectremove(intindex);//移除指定序號處的元素intindexOf(Objectelement);//獲取元素的序號intsize();//獲取容器元素個數(shù)Iteratoriterator();//返回一個迭代器對象,實現(xiàn)對容器內(nèi)元素的遍歷操作List接口具體實現(xiàn)類ArrayList(常用)內(nèi)部存儲采用數(shù)組結構實現(xiàn)的List容器LinkedList內(nèi)部存儲采用雙向鏈表結構實現(xiàn)的List容器Vector示例ListTestProjectList容器示例說明良好習慣,采用“面向接口編程”方式聲明采用接口類型,指向具體實現(xiàn)類的實例對象循環(huán)遍歷List容器:建議采用Iterator(迭代器)實現(xiàn)方式Listlist=newArrayList();Listlist=newLinkedList();Iterator接口說明所有實現(xiàn)了Collection接口的容器類都有一個iterator()方法,用以返回一個實現(xiàn)了Iterator接口的對象Iterator對象稱作迭代器,用以方便地實現(xiàn)對容器內(nèi)元素的遍歷操作Iterator接口定義的常用方法booleanhasNext();//判斷是否有下一個元素Objectnext();//返回下一個元素voidremove();//刪除當前元素2.3.2SetSet接口是Collection的子接口,實現(xiàn)Set接口的容器類中的元素是無序的,而且不可以重復元素:對象,實例無序:不保證元素存入順序與取出順序一致重復:兩個對象通過equals方法比較后相等SetSet接口具體實現(xiàn)類HashSet(常用)根據(jù)哈希碼進行存放存放元素是無序的,存放元素不重復LinkedHashSet存放元素有序TreeSetSet示例SetTestProjectSet示例說明良好習慣,采用“面向接口編程”方式聲明采用接口類型,指向具體實現(xiàn)類的實例對象循環(huán)遍歷:采用Iterator(迭代器)實現(xiàn)方式對于要存放到Set容器中的自定義類對象,最好重寫equals()和hashCode()方法以實現(xiàn)對象相等規(guī)則Setsets=newHashSet();Setsets=newLinkedHashSet();equals方法說明自定義類,equals方法繼承自Object,默認比較對象的地址預定義類,比如String,已經(jīng)重寫了equals方法,判斷內(nèi)容是否相等2.3.3Map實現(xiàn)Map接口的容器類用來存儲“鍵—值”映射對Map接口常用實現(xiàn)類HashMap(常用)內(nèi)部“鍵”采用Set,根據(jù)哈希碼進行存放TreeMapHashtableMap中的“鍵”采用Set來存放,“鍵”不能重復常用String作為Map的“鍵”Map存儲結構MapValue值1Key值1Value值2Key值2Value值3Key值3…Map存儲結構(名/值對)值1值2值3值4值5值6值7值801234567數(shù)組值1值2值3值4值5值6值7值8名1名2名3名4名5名6名7名8mapMap數(shù)據(jù)結構將值(value)與名字(Key)關聯(lián)存儲根據(jù)名字(Key)取對應值(value)Map接口的常用方法HashMap示例Objectput(Objectkey,Objectvalue);//存放一個”鍵—值對“Objectget(Objectkey);//根據(jù)指定”鍵”獲取對應的值Objectremove(Objectkey);//移除指定”鍵“對應的值booleancontainKey(Objectkey);//是否包含指定鍵booleancontainValue(Objectvalue);//是否包含指定值SetkeySet();//返回此Map中所有“鍵”的一個Setintsize();//容器元素個數(shù)MapTestProject2.4容器的泛型操作產(chǎn)生起因:JDK1.4以前,裝入容器的類型都被當做Object對待,從而失去自己的實際類型從容器中取出時需要轉型,效率低下解決方法:定義容器時,利用泛型技術指定容器中對象的類型利用Iterator迭代遍歷時,利用泛型指定迭代對象類型從容器中取出元素和利用Iterator迭代元素時,不再需要轉型示例ListTest/SetTest/MapTestProject2.5總結掌握常用容器類用法List容器(有序,允許重復)ArrayListLinkedListSet容器HashSet(無序,不允許重復)LinkedHashSet(有序,不允許重復)Map容器(key-value)HashMap掌握泛型容器用法以下T,T1,T2代表具體對象類型采用Se

溫馨提示

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

評論

0/150

提交評論