版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
實(shí)用標(biāo)準(zhǔn)文案1、Collection :集合框架的由來(lái):因?yàn)槊總€(gè)容器對(duì)象的自身的數(shù)據(jù)結(jié)構(gòu)不同,所以對(duì)它們進(jìn)行單獨(dú)的描述和對(duì)象封裝,并不斷的向上抽取共性內(nèi)容,這樣變形成了集合框架。定義:集合就是一個(gè)容器、用來(lái)存儲(chǔ)對(duì)象、長(zhǎng)度可變。理解:其實(shí)班級(jí)就是一個(gè)容器,班上的每一個(gè)學(xué)生都是單獨(dú)封裝了功能的對(duì)象,因?yàn)榘嗉?jí)中的人數(shù)由于有人請(qǐng)假每天都再變化,所以長(zhǎng)度是可變的,常見(jiàn)方法:1、增加:add();增加一個(gè)元素addAll(); 增加一部分元素。2、刪除:Remove();刪除一個(gè)元素,會(huì)返回boolean類型,其實(shí)用到是 equals 方法,所以判斷是否有符合要求的元素。如果刪除成功會(huì)改變集合的長(zhǎng)度。下面同理。removeAll(); 刪除全部Clrea(); 清空容器總結(jié):在這里要尤其注意,面試題中經(jīng)??嫉?。3、判斷:Contains(); 是否包含,也就說(shuō)要所有的都包含在其中才算包含,否則不算包含。isEmpty(); 集合是否為空Size(); 集合長(zhǎng)度。4、?。簉etainAll(); 取交集。理解總結(jié):班級(jí)就是一個(gè)容器,班級(jí)中進(jìn)來(lái)一位新生就是 Add()添加一個(gè)元素,來(lái)了一堆同學(xué)就是addAll,班上出去一個(gè)學(xué)生就是remove刪除一個(gè),出去一部分就是removeAll刪除一部分,班級(jí)是不是有人,isEmpty,班上是否包含張三contains,班上有多少人size。班上是否包精彩文檔實(shí)用標(biāo)準(zhǔn)文案含隔壁班的同學(xué) retainAll. 去交集。集合使用細(xì)節(jié):1、直接存儲(chǔ)基本數(shù)據(jù)類型值也是可以的, 因?yàn)镴DK1.5后有自動(dòng)裝箱,會(huì)將基本數(shù)據(jù)類型轉(zhuǎn)成對(duì)象, JDK1.4絕對(duì)不行。Eg:coll.add(3)2、集合對(duì)象中存儲(chǔ)的其實(shí)是對(duì)象的元素的引用。3、Add的參數(shù)是 Object類型,可以接收所有的類型的對(duì)象,會(huì)出現(xiàn)向上轉(zhuǎn)型,取出元素時(shí)類型還是 Object 不能使用具體對(duì)象的特有內(nèi)容, 想要使用特有內(nèi)容向下轉(zhuǎn)型。Eg:Object obj="obj"; 想要取出訪問(wèn)子類的特有方法,向下轉(zhuǎn)型,Strings=(String)it.next();sop(s.length());|--List :有序列表(存取順序是一致的 )因?yàn)樵撟芋w系元素中有索引或角標(biāo), 可以存儲(chǔ)重復(fù)的元素。常用方法:添加:List.add(1,"abc7");//[abc1,abc7,abc2,abc3] 在角標(biāo)1位置往后順延。刪除Object obj=list.remove(2);// 刪除指定索引上的元素, 根據(jù)角標(biāo)刪除會(huì)返回來(lái)被刪對(duì)象Sop(obj);//obj :abc2[abc1,abc7,abc3]//獲取:獲取指定角標(biāo)上的元素并返回,這也是和 remove的區(qū)別。Objectobj=list.get(1);Sop(obj);//obj:abc1[abc1,abc7,abc3]獲取元素的索引,如果元素存在返回索引,不存在返回-1,依次還可以判斷元素是否存在。Intindex=list.indexOf("abc1");Sop(index);//index=1//獲取指定的子列表 sublist(fromIndex,toindex) 包含頭不包含尾List=list.sublist(1,2);//[abc1]修改:Objectobj=list.set(1,"haha");Sop(obj);//[abc1,haha,abc3]記?。褐挥?list 集合支持增刪改查。|--ArrayList :低層是數(shù)組數(shù)據(jù)結(jié)構(gòu),不同步,查詢快,增刪慢,|--LinkedList :低層是鏈表數(shù)據(jù)結(jié)構(gòu),不同步,查詢慢,增刪較快。|--Vector :低層是數(shù)組數(shù)據(jù)結(jié)構(gòu),同步,安全效率低,還有其特有方法枚舉。由于名稱過(guò)長(zhǎng)被 iterator 取代??偨Y(jié):掌握這些集合的方法,它們的方法和 list 集合的方法很相似,重點(diǎn)掌握各種集合的特點(diǎn),尤其是前兩個(gè)子類的低層數(shù)據(jù)結(jié)構(gòu)。|--Set無(wú)序、不能存儲(chǔ)重復(fù)的元素、方法個(gè) collection 集合的方法一致。精彩文檔實(shí)用標(biāo)準(zhǔn)文案|--HashSet低層是哈希表數(shù)據(jù)結(jié)構(gòu), 無(wú)序,能保證元素的唯一性, 是根據(jù)元素的兩個(gè)方法來(lái)保證元素的唯一性的, hasCode和equals 方法。只有當(dāng) hasCode算出的哈希值相同的情況下才去判斷 equals 方法是否為 true. 如果為真說(shuō)明兩個(gè)元素相同,不存儲(chǔ),所以往hashSet集合中存儲(chǔ)自定義對(duì)象時(shí)要覆寫(xiě) hasCode方法和equals方法,重點(diǎn)掌握上述保證唯一性的方法以及哈希表內(nèi)存原理實(shí)現(xiàn)。|--linkedHashSet以元素的插入順序來(lái)維護(hù)集合的連接表,允許以插入的順序的集合中迭代的怎么去理解?HashSet<String>hs=newHashSet<String>();hs.add("B");hs.add("A");hs.add("D");hs.add("E");hs.add("C");hs.add("F");System.out.println("HashSet:"+hs);LinkedHashSet<String>lhs=newLinkedHashSet<String>();lhs.add("B");lhs.add("A");lhs.add("D");lhs.add("E");lhs.add("C");lhs.add("F");System.out.println("LinkedHashSet:"+lhs);TreeSet<String>ts=newTreeSet<String>();ts.add("B");ts.add("A");ts.add("D");ts.add("E");ts.add("C");ts.add("F");System.out.println("TreeSet:"+ts);結(jié)果:HashSet:[D,E,F,A,B,C]LinkedHashSet:[B,A,D,E,C,F]TreeSet:[A,B,C,D,E,F]從結(jié)果可以知道對(duì)于LinkedHashSet集合可以保證元素按照添加的順序取出元素,而TreeSet集合可以對(duì)集合中的元素進(jìn)行自然排序。|--TreeSet精彩文檔實(shí)用標(biāo)準(zhǔn)文案用于給set集合中元素按照指定的順序進(jìn)行排序, 低層是二叉樹(shù)結(jié)構(gòu), 線程是不同步的,兩種排序方式:1、讓元素自身具備比較功能,就是強(qiáng)制讓元素去實(shí)現(xiàn)comparable接口,覆蓋compareTo方法。這時(shí)元素具備的自然排序。可是如果元素自身不具備比較的功能,獲取具備的比較功能不是所需要的。這時(shí)該排序方式就不能用了。2、讓集合自身具備比較功能,需要定義比較器,其實(shí)就是將實(shí)現(xiàn)了 Comparator接口的子類對(duì)象作為參數(shù)傳遞給 TreeSet集合的構(gòu)造函數(shù),讓treeSet 集合一創(chuàng)建就具備了比較功能。該子類必須要覆蓋 compare方法。掌握二叉樹(shù)數(shù)據(jù)結(jié)構(gòu)的特點(diǎn):不明白?2、Map:特點(diǎn):1、它是集合框架中的頂層2、它存儲(chǔ)的是鍵值對(duì)。3、Map集合中必須保證鍵的唯一性。4、如果存儲(chǔ)鍵值對(duì)時(shí),鍵重復(fù),新值覆蓋舊值。其實(shí)存儲(chǔ)的就是一種映射關(guān)系。常見(jiàn)方法:增加:Put();putAll();刪除:Clrea();Remove(key);判斷:containKey();containValue();獲?。篻et(Objectkey);Size();Values();entrySet(); 將map集合中的映射關(guān)系map.Entry其實(shí)Entry也是一個(gè)接口,它是 map接口中的一個(gè)內(nèi)部接口。InterfaceMap{publicstaticinterfaceEntry{publicabstractObjectgetKey();publicabstractObjectgetValue();}}keySet(); 將map中所有的鍵都存入了 set集合,因?yàn)閟et具備迭代器,所以可以迭代方式取出所有的鍵,在根據(jù) get方法獲取每一個(gè)鍵對(duì)應(yīng)的值。Map集合的取出原理:將 map集合轉(zhuǎn)成set集合,在通過(guò)迭代器取出 .精彩文檔實(shí)用標(biāo)準(zhǔn)文案|--HashMap:低層是哈希表數(shù)據(jù)結(jié)構(gòu),該集合是不同步的,允許使用 null 鍵和null值。JDK1.2效率高|--LinkedHashMap:保證按照插入的順序進(jìn)行取出。|--TreeMap:低層是二叉樹(shù)數(shù)據(jù)結(jié)構(gòu),線程不同步,可以用于給Map集合中的鍵進(jìn)行排序。3、Iterator迭代器原理:其實(shí)就 collection 這個(gè)集合公共取出方式,因?yàn)槊總€(gè)容器的自身的數(shù)據(jù)結(jié)構(gòu)不同,它們的取出方式也是不同的, 要根據(jù)每個(gè)容器的特點(diǎn)來(lái)定義特定的取出方式, 而取出方式直接在訪問(wèn)容器中的元素, 所以將取出方式定義在容器的內(nèi)部, 是一個(gè)內(nèi)部類,而對(duì)外提供訪問(wèn)接口。這樣可以通過(guò)接口訪問(wèn)任何的 collection 容器中的元素,所以它的出現(xiàn)降低了耦合性,我們只用面對(duì) Iterator 接口,和使用接口就可以了。理解:抓布娃娃游戲機(jī)。|--ListIterator列表迭代器:要想在迭代過(guò)程中進(jìn)行增刪操作 Iterator 是不可以的,它只有刪除動(dòng)作,所以可以使用其子接口 listIterator, 是list 集合特有的取出方式,它包包含了增刪改查的方法。4、Collections 和Collection 的區(qū)別:(面試題)1、是一個(gè)集合接口。它提供了對(duì)集合對(duì)象進(jìn)行基本操作的通用接口方法。Collection接口在Java類庫(kù)中有很多具體的實(shí)現(xiàn)。Collection接口的意義是為各種具體的集合提供了最大化的統(tǒng)一操作方式。CollectionList│├LinkedList│├ArrayList│└Vector│ └StackSet2、java.util.Collections是一個(gè)包裝類。它包含有各種有關(guān)集合操作的靜態(tài)多態(tài)方法。此類不能實(shí)例化,就像一個(gè)工具類,服務(wù)于Java的Collection框架。Java代碼1.importjava.util.ArrayList;2.importjava.util.Collections;3.importjava.util.List;4.5.publicclassTestCollections{6.7.publicstaticvoidmain(Stringargs[]){精彩文檔實(shí)用標(biāo)準(zhǔn)文案8.//注意List是實(shí)現(xiàn)Collection接口的9.Listlist=newArrayList();10.doublearray[]={1
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學(xué)年高二物理上學(xué)期期中考點(diǎn)大串講(魯科版2019)專題05 電磁場(chǎng)與電磁波 能量轉(zhuǎn)化【考題猜想】(18題9大類型)(含答案及解析)
- 餐飲行業(yè)員工服務(wù)技能三方協(xié)議書(shū)
- 體育活動(dòng)探究性方案設(shè)計(jì)
- 家校共育與社會(huì)責(zé)任融合方案
- 企業(yè)如何合法解除勞動(dòng)合同
- 山塘水庫(kù)承包合同樣本(2篇)
- 廣州-PEP-2024年10版小學(xué)3年級(jí)英語(yǔ)第三單元真題試卷
- 探究小學(xué)數(shù)學(xué)教學(xué)中德育教育現(xiàn)狀與解決辦法
- 學(xué)校體育器材購(gòu)銷合同(2篇)
- 淺談園林建筑過(guò)程中綠化工程
- 小學(xué)道德與法治研修活動(dòng)方案
- 五下音樂(lè)《瑤族舞曲(簡(jiǎn)譜、五線譜)》課件
- 運(yùn)用PDCA縮短ST段抬高型急性心肌梗死病人在急診停留時(shí)間
- 2024-2030年中國(guó)GIS行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略分析報(bào)告
- SRM容災(zāi)解決專項(xiàng)方案
- 2024-2030年熊膽粉產(chǎn)業(yè)市場(chǎng)深度調(diào)研及發(fā)展趨勢(shì)與投資前景預(yù)測(cè)研究分析報(bào)告
- 可靠性教材工程師模擬考試(4)附有答案
- GB/T 18029.8-2024輪椅車第8部分:靜態(tài)強(qiáng)度、沖擊強(qiáng)度及疲勞強(qiáng)度的要求和測(cè)試方法
- 小學(xué)道德與法治四年級(jí)上冊(cè)第二單元作業(yè)設(shè)計(jì)
- 2020新青島版(六三制)四年級(jí)上冊(cè)科學(xué)課件(全冊(cè)).p
- 腦血管供血不足患者的護(hù)理查房
評(píng)論
0/150
提交評(píng)論