版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Java容器類本篇說明介紹Java容器類常用用法主要目的:針對后續(xù)開發(fā)所需知識點(diǎn),不全面介紹本篇內(nèi)容Java數(shù)組Java容器類一、數(shù)組數(shù)組是相同類型的、用一個(gè)標(biāo)識符名稱封裝到一起的一個(gè)基本類型數(shù)據(jù)序列或?qū)ο笮蛄袛?shù)組通過方括號下標(biāo)操作符[]來定義和使用定義數(shù)組數(shù)組初始化int[]ainta[]int[]a;a=newint[10];
int[]a=newint[10];
對象數(shù)組(假定已定義Student類)數(shù)組元素個(gè)數(shù)是固定的,在定義和初始化時(shí)指定訪問時(shí)通過下標(biāo)(從0開始,最大下標(biāo)數(shù)—數(shù)組長度-1),一旦訪問下標(biāo)過界,會(huì)出現(xiàn)運(yùn)行期錯(cuò)誤定義和初始化數(shù)組后,數(shù)組尺寸不能改變Student[]s=newStudent[10];
數(shù)組示例采用JUnit單元測試導(dǎo)入JUnitJAR包編寫單元測試方法其他機(jī)器拷回去的項(xiàng)目,如果JAR包找不到(位置不對),把JAR包刪掉重新導(dǎo)入單元測試方法增加注解@Test,如果@不自動(dòng)提示,增加提示window-Preference-Java-Editor-ContentAssistantArrayTestProject二、Java容器類2.1容器類概念Java容器:JavaAPI所提供的一系列類,可以用于動(dòng)態(tài)存放多個(gè)對象JDK所提供的容器API位于java.util包內(nèi)2.2JavaCollectionsFramework2.3Java容器常用接口Collection接口——定義了存取對象的方法,其中兩個(gè)常用的子接口List接口:存放的元素有序且允許元素有重復(fù)Set接口:存放的元素不允許重復(fù)Map接口:定義了存儲(chǔ)“鍵(Key)—值(Value)映射對”的方法程序中經(jīng)常使用的:List接口、Set接口和Map接口Java容器類和數(shù)組的區(qū)別數(shù)組容量是固定的,容器類的容量可以自動(dòng)調(diào)節(jié)容器類只能用來存放對象,不能存儲(chǔ)基本數(shù)據(jù)類型(可以存儲(chǔ)基本數(shù)據(jù)類型的包裝類),數(shù)組沒有此限制2.3.1ListList接口是Collection的子接口,實(shí)現(xiàn)List接口的容器類中的元素是有順序的,而且可以重復(fù)元素:對象、實(shí)例有序:元素存入的順序與取出順序一致重復(fù):兩個(gè)對象通過equals方法比較后相等List容器中的元素都對應(yīng)一個(gè)整數(shù)型的序號記載其在容器中的位置,可以根據(jù)序號存取容器中的元素List接口的常用方法voidadd(Objectelement);//添加元素,默認(rèn)添加到最后voidadd(intindex,Objectelement);//按指定序號添加元素Objectget(intindex);//根據(jù)指定序號獲取元素Objectremove(intindex);//移除指定序號處的元素intindexOf(Objectelement);//獲取元素的序號intsize();//獲取容器元素個(gè)數(shù)Iteratoriterator();//返回一個(gè)迭代器對象,實(shí)現(xiàn)對容器內(nèi)元素的遍歷操作List接口具體實(shí)現(xiàn)類ArrayList(常用)內(nèi)部存儲(chǔ)采用數(shù)組結(jié)構(gòu)實(shí)現(xiàn)的List容器LinkedList內(nèi)部存儲(chǔ)采用雙向鏈表結(jié)構(gòu)實(shí)現(xiàn)的List容器Vector示例ListTestProjectList容器示例說明良好習(xí)慣,采用“面向接口編程”方式聲明采用接口類型,指向具體實(shí)現(xiàn)類的實(shí)例對象循環(huán)遍歷List容器:建議采用Iterator(迭代器)實(shí)現(xiàn)方式Listlist=newArrayList();Listlist=newLinkedList();Iterator接口說明所有實(shí)現(xiàn)了Collection接口的容器類都有一個(gè)iterator()方法,用以返回一個(gè)實(shí)現(xiàn)了Iterator接口的對象Iterator對象稱作迭代器,用以方便地實(shí)現(xiàn)對容器內(nèi)元素的遍歷操作Iterator接口定義的常用方法booleanhasNext();//判斷是否有下一個(gè)元素Objectnext();//返回下一個(gè)元素voidremove();//刪除當(dāng)前元素2.3.2SetSet接口是Collection的子接口,實(shí)現(xiàn)Set接口的容器類中的元素是無序的,而且不可以重復(fù)元素:對象,實(shí)例無序:不保證元素存入順序與取出順序一致重復(fù):兩個(gè)對象通過equals方法比較后相等SetSet接口具體實(shí)現(xiàn)類HashSet(常用)根據(jù)哈希碼進(jìn)行存放存放元素是無序的,存放元素不重復(fù)LinkedHashSet存放元素有序TreeSetSet示例SetTestProjectSet示例說明良好習(xí)慣,采用“面向接口編程”方式聲明采用接口類型,指向具體實(shí)現(xiàn)類的實(shí)例對象循環(huán)遍歷:采用Iterator(迭代器)實(shí)現(xiàn)方式對于要存放到Set容器中的自定義類對象,最好重寫equals()和hashCode()方法以實(shí)現(xiàn)對象相等規(guī)則Setsets=newHashSet();Setsets=newLinkedHashSet();equals方法說明自定義類,equals方法繼承自O(shè)bject,默認(rèn)比較對象的地址預(yù)定義類,比如String,已經(jīng)重寫了equals方法,判斷內(nèi)容是否相等2.3.3Map實(shí)現(xiàn)Map接口的容器類用來存儲(chǔ)“鍵—值”映射對Map接口常用實(shí)現(xiàn)類HashMap(常用)內(nèi)部“鍵”采用Set,根據(jù)哈希碼進(jìn)行存放TreeMapHashtableMap中的“鍵”采用Set來存放,“鍵”不能重復(fù)常用String作為Map的“鍵”Map存儲(chǔ)結(jié)構(gòu)MapValue值1Key值1Value值2Key值2Value值3Key值3…Map存儲(chǔ)結(jié)構(gòu)(名/值對)值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ù)結(jié)構(gòu)將值(value)與名字(Key)關(guān)聯(lián)存儲(chǔ)根據(jù)名字(Key)取對應(yīng)值(value)Map接口的常用方法HashMap示例Objectput(Objectkey,Objectvalue);//存放一個(gè)”鍵—值對“Objectget(Objectkey);//根據(jù)指定”鍵”獲取對應(yīng)的值Objectremove(Objectkey);//移除指定”鍵“對應(yīng)的值booleancontainKey(Objectkey);//是否包含指定鍵booleancontainValue(Objectvalue);//是否包含指定值SetkeySet();//返回此Map中所有“鍵”的一個(gè)Setintsize();//容器元素個(gè)數(shù)MapTestProject2.4容器的泛型操作產(chǎn)生起因:JDK1.4以前,裝入容器的類型都被當(dāng)做Object對待,從而失去自己的實(shí)際類型從容器中取出時(shí)需要轉(zhuǎn)型,效率低下解決方法:定義容器時(shí),利用泛型技術(shù)指定容器中對象的類型利用Iterator迭代遍歷時(shí),利用泛型指定迭代對象類型從容器中取出元素和利用Iterator迭代元素時(shí),不再需要轉(zhuǎn)型示例ListTest/SetTest/MapTestProject2.5總結(jié)掌握常用容器類用法List容器(有序,允許重復(fù))ArrayListLinkedListSet容器HashSet(無序,不允許重復(fù))LinkedHashSet(有序,不允許重復(fù))Map容器(key-value)HashMap掌握泛型容器用法以下T,T1,T2代表具體對象類型采用Se
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年掌控中考復(fù)習(xí)配套課件:第九單元溶液
- 《老人與海》課件
- 2024年阿壩職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫及答案解析
- 單位管理制度集合大全【人力資源管理篇】
- 單位管理制度分享合集【人員管理】十篇
- 單位管理制度范文大合集【員工管理】十篇
- 單位管理制度呈現(xiàn)大全【人事管理篇】十篇
- 《詩五首》教案設(shè)計(jì)
- 第7單元 工業(yè)革命和國際共產(chǎn)主義運(yùn)動(dòng)的興起(高頻選擇題50題)(解析版)
- UFIDAU培訓(xùn)課程委托代銷
- 高職建筑設(shè)計(jì)專業(yè)《建筑構(gòu)造與識圖》說課課件
- 《國珍產(chǎn)品介紹》
- 醫(yī)院軟式內(nèi)鏡清洗消毒技術(shù)規(guī)范
- 《高速鐵路客運(yùn)乘務(wù)實(shí)務(wù)(活頁式)》全套教學(xué)課件
- 2024(部編版)道德與法治九年級上冊 第二單元 民主與法治 單元測試(學(xué)生版+解析版)
- 醫(yī)療護(hù)理員基礎(chǔ)理論知識考試試題題庫及答案
- 2024年高考英語詞匯表-帶音標(biāo)
- 墊底辣妹教育學(xué)思考(3篇模板)
- 框架結(jié)構(gòu)設(shè)計(jì)國內(nèi)外研究現(xiàn)狀
- 創(chuàng)新人才認(rèn)證(解決方案)考試題庫(附答案)
- 新質(zhì)生產(chǎn)力-講解課件
評論
0/150
提交評論