已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、 Collection:集合框架的由來:因為每個容器對象的自身的數(shù)據(jù)結(jié)構(gòu)不同,所以對它們進行單獨的描述和對象封裝,并不斷的向上抽取共性內(nèi)容,這樣變形成了集合框架。定義:集合就是一個容器、用來存儲對象、長度可變。理解:其實班級就是一個容器,班上的每一個學生都是單獨封裝了功能的對象,因為班級中的人數(shù)由于有人請假每天都再變化,所以長度是可變的,常見方法:1、 增加:add();增加一個元素addAll();增加一部分元素。2、 刪除:Remove();刪除一個元素,會返回boolean類型,其實用到是equals方法,所以判斷是否有符合要求的元素。如果刪除成功會改變集合的長度。下面同理。removeAll();刪除全部Clrea();清空容器總結(jié):在這里要尤其注意,面試題中經(jīng)??嫉?。3、 判斷:Contains();是否包含,也就說要所有的都包含在其中才算包含,否則不算包含。isEmpty();集合是否為空Size();集合長度。4、 ?。簉etainAll();取交集。理解總結(jié):班級就是一個容器,班級中進來一位新生就是Add()添加一個元素,來了一堆同學就是addAll,班上出去一個學生就是remove刪除一個,出去一部分就是removeAll刪除一部分,班級是不是有人,isEmpty,班上是否包含張三contains,班上有多少人size。班上是否包含隔壁班的同學retainAll.去交集。集合使用細節(jié):1、 直接存儲基本數(shù)據(jù)類型值也是可以的,因為JDK1.5后有自動裝箱,會將基本數(shù)據(jù)類型轉(zhuǎn)成對象,JDK1.4絕對不行。Eg:coll.add(3)2、 集合對象中存儲的其實是對象的元素的引用。3、 Add的參數(shù)是Object類型,可以接收所有的類型的對象,會出現(xiàn)向上轉(zhuǎn)型,取出元素時類型還是Object不能使用具體對象的特有內(nèi)容,想要使用特有內(nèi)容向下轉(zhuǎn)型。Eg:Object obj=obj;想要取出訪問子類的特有方法,向下轉(zhuǎn)型,String s=(String)it.next();sop(s.length();|-List:有序列表(存取順序是一致的)因為該子體系元素中有索引或角標,可以存儲重復的元素。常用方法:/添加:List.add(1,abc7);/abc1,abc7,abc2,abc3在角標1位置往后順延。/刪除Object obj=list.remove(2);/刪除指定索引上的元素,根據(jù)角標刪除會返回來被刪對象Sop(obj);/obj:abc2 abc1,abc7,abc3/獲取:獲取指定角標上的元素并返回,這也是和remove的區(qū)別。Object obj=list.get(1);Sop(obj);/obj:abc1 abc1,abc7,abc3/獲取元素的索引,如果元素存在返回索引,不存在返回-1,依次還可以判斷元素是否存在。Int index=list.indexOf(abc1);Sop(index);/index=1/獲取指定的子列表sublist(fromIndex,toindex)包含頭不包含尾List=list.sublist(1,2);/abc1/修改:Object obj=list.set(1,haha);Sop(obj);/abc1,haha,abc3記住:只有l(wèi)ist集合支持增刪改查。|-ArrayList:低層是數(shù)組數(shù)據(jù)結(jié)構(gòu),不同步,查詢快,增刪慢,|-LinkedList:低層是鏈表數(shù)據(jù)結(jié)構(gòu),不同步,查詢慢,增刪較快。|-Vector:低層是數(shù)組數(shù)據(jù)結(jié)構(gòu),同步,安全效率低,還有其特有方法枚舉。由于名稱過長被iterator取代??偨Y(jié):掌握這些集合的方法,它們的方法和list集合的方法很相似,重點掌握各種集合的特點,尤其是前兩個子類的低層數(shù)據(jù)結(jié)構(gòu)。|-Set無序、不能存儲重復的元素、方法個collection集合的方法一致。|-HashSet低層是哈希表數(shù)據(jù)結(jié)構(gòu),無序,能保證元素的唯一性,是根據(jù)元素的兩個方法來保證元素的唯一性的,hasCode和equals方法。只有當hasCode算出的哈希值相同的情況下才去判斷equals方法是否為true.如果為真說明兩個元素相同,不存儲,所以往hashSet集合中存儲自定義對象時要覆寫hasCode方法和equals方法,重點掌握上述保證唯一性的方法以及哈希表內(nèi)存原理實現(xiàn)。|-linkedHashSet以元素的插入順序來維護集合的連接表,允許以插入的順序的集合中迭代的怎么去理解?HashSet hs=new HashSet();hs.add(B);hs.add(A);hs.add(D);hs.add(E);hs.add(C);hs.add(F);System.out.println(HashSet:+hs);LinkedHashSet lhs=new LinkedHashSet();lhs.add(B);lhs.add(A);lhs.add(D);lhs.add(E);lhs.add(C);lhs.add(F);System.out.println(LinkedHashSet:+lhs);TreeSet ts=new TreeSet();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, CLinkedHashSet:B, A, D, E, C, FTreeSet:A, B, C, D, E, F從結(jié)果可以知道對于LinkedHashSet集合可以保證元素按照添加的順序取出元素,而TreeSet集合可以對集合中的元素進行自然排序。|-TreeSet用于給set集合中元素按照指定的順序進行排序,低層是二叉樹結(jié)構(gòu),線程是不同步的,兩種排序方式:1、 讓元素自身具備比較功能,就是強制讓元素去實現(xiàn)comparable接口,覆蓋compareTo方法。這時元素具備的自然排序??墒侨绻刈陨聿痪邆浔容^的功能,獲取具備的比較功能不是所需要的。這時該排序方式就不能用了。2、 讓集合自身具備比較功能,需要定義比較器,其實就是將實現(xiàn)了Comparator接口的子類對象作為參數(shù)傳遞給TreeSet集合的構(gòu)造函數(shù),讓treeSet集合一創(chuàng)建就具備了比較功能。該子類必須要覆蓋compare方法。掌握二叉樹數(shù)據(jù)結(jié)構(gòu)的特點:不明白?2、 Map:特點:1、 它是集合框架中的頂層2、 它存儲的是鍵值對。3、 Map集合中必須保證鍵的唯一性。4、 如果存儲鍵值對時,鍵重復,新值覆蓋舊值。其實存儲的就是一種映射關系。常見方法:增加:Put();putAll();刪除:Clrea();Remove(key);判斷:containKey();containValue();獲?。篻et(Object key);Size();Values();entrySet();將map集合中的映射關系map.Entry其實Entry也是一個接口,它是map接口中的一個內(nèi)部接口。Interface Mappublic static interface Entrypublic abstract Object getKey();public abstract Object getValue();keySet();將map中所有的鍵都存入了set集合,因為set具備迭代器,所以可以迭代方式取出所有的鍵,在根據(jù)get方法獲取每一個鍵對應的值。Map集合的取出原理:將map集合轉(zhuǎn)成set集合,在通過迭代器取出.|-HashMap:低層是哈希表數(shù)據(jù)結(jié)構(gòu),該集合是不同步的,允許使用null鍵和null值。JDK1.2效率高|-LinkedHashMap:保證按照插入的順序進行取出。|-TreeMap:低層是二叉樹數(shù)據(jù)結(jié)構(gòu),線程不同步,可以用于給Map集合中的鍵進行排序。3、 Iterator迭代器原理:其實就collection這個集合公共取出方式,因為每個容器的自身的數(shù)據(jù)結(jié)構(gòu)不同,它們的取出方式也是不同的,要根據(jù)每個容器的特點來定義特定的取出方式,而取出方式直接在訪問容器中的元素,所以將取出方式定義在容器的內(nèi)部,是一個內(nèi)部類,而對外提供訪問接口。這樣可以通過接口訪問任何的collection容器中的元素,所以它的出現(xiàn)降低了耦合性,我們只用面對Iterator接口,和使用接口就可以了。理解:抓布娃娃游戲機。|-ListIterator列表迭代器:要想在迭代過程中進行增刪操作Iterator是不可以的,它只有刪除動作,所以可以使用其子接口listIterator,是list集合特有的取出方式,它包包含了增刪改查的方法。4、 Collections和Collection的區(qū)別:(面試題)1、java.util.Collection 是一個集合接口。它提供了對集合對象進行基本操作的通用接口方法。Collection接口在Java 類庫中有很多具體的實現(xiàn)。Collection接口的意義是為各種具體的集合提供了最大化的統(tǒng)一操作方式。Collection List LinkedList ArrayList Vector Stack Set 2、java.util.Collections 是一個包裝類。它包含有各種有關集合操作的靜態(tài)多態(tài)方法。此類不能實例化,就像一個工具類,服務于Java的Collection框架。Java代碼 1. importjava.util.ArrayList; 2. importjava.util.Collections; 3. importjava.util.List; 4. 5. publicclassTestCollections 6. 7. publicstaticvoidmain(Stringargs) 8. /注意List是實現(xiàn)Collection接口的 9. Listlist=newArrayList(); 10. doublearray=112,111,23,456,231; 11. for(inti=0;iarray.length;i+) 12. list.add(newDouble(arrayi); 13. 14. Collections.sort(list); 15. for(inti=0;iarray.length;i+) 16. System.out.println(list.get(i); 17. 18. /結(jié)果:23.0111.0112.0231.0456.0 19. 20. import java.util.ArrayList;import java.util.Collections;import java.util.List;public class TestCollections public static void main(String args) /注意List是實現(xiàn)Collection接口的List list = ne
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年旅游服務技能景區(qū)管理與服務流程實操考試題
- 2026年工程管理師工程招投標與造價管理專業(yè)試題
- 2026年教師資格證考試教育心理學知識要點練習題
- 2026年建筑設計師專業(yè)技能等級考試預測模擬卷
- 2026年醫(yī)師資格實踐技能考試醫(yī)學基礎綜合模擬試題
- 2025年省蘭州市事業(yè)單位考試及答案
- 城市考古遺址的可持續(xù)展示策略
- 茶與健康培訓講座課件
- 二級筆譯考試專業(yè)文獻引用規(guī)范試題沖刺卷
- 醫(yī)學免疫學知識評估試題及真題
- 婦科醫(yī)師年終總結(jié)和新年計劃
- 靜脈用藥調(diào)配中心(PIVAS)年度工作述職報告
- nccn臨床實踐指南:宮頸癌(2025.v2)課件
- DB11∕T 1191.1-2025 實驗室危險化學品安全管理要求 第1部分:工業(yè)企業(yè)
- 山東省濟南市2025年中考地理真題試卷附真題答案
- 起重機檢測合同協(xié)議
- 黨支部書記2025年度抓基層黨建工作述職報告
- 2025版過敏性休克搶救指南(醫(yī)護實操版)
- 融媒體考試試題及答案
- 刮板流量計課件
- 鉗工安全操作規(guī)程完整版
評論
0/150
提交評論