




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第第頁(yè)Java集合框架總結(jié)Java的集合框架總結(jié)
JAVA集合框架
一、集合框架
在實(shí)際開發(fā)中,需要將對(duì)象依據(jù)不同的需求而存儲(chǔ)在特定的數(shù)據(jù)結(jié)構(gòu)容器中。但是數(shù)組雖然是一種用來(lái)存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),但是它的局限性很低,很難滿意各種的需求,所以JDK涌現(xiàn)了用來(lái)滿意各種需求的框架——集合框架。
“集合框架”主要由一組用來(lái)操作對(duì)象的接口組成。不同接口描述一組不同數(shù)據(jù)類型。常見(jiàn)的集合類有:1〕實(shí)現(xiàn)Collection接口的:List接口、Set接口。
2〕實(shí)現(xiàn)Map接口的。
二、Collection接口
Collection接口表示了如何把一組對(duì)象作為它的元素。JDK沒(méi)有徑直提供Collection接口的實(shí)現(xiàn),Collection接口的實(shí)現(xiàn)依靠于兩個(gè)繼承自自己的接口:Set和List。全部通過(guò)實(shí)現(xiàn)Collection接口的子接口的類應(yīng)當(dāng)提供兩個(gè)標(biāo)準(zhǔn)的構(gòu)造器:一個(gè)不需要參數(shù)的構(gòu)造器,用來(lái)創(chuàng)建一個(gè)空的集合,另外一個(gè)需要一個(gè)類型作為參數(shù)的構(gòu)造器,用來(lái)創(chuàng)建一個(gè)和參數(shù)的類型相同的元素的集合。
intsize():返回這個(gè)集合中的元素的數(shù)量。
booleanisEmpty():返回集合是否包含元素,假如沒(méi)有的話,返回true。booleancontains(Ee):假如這個(gè)集合包含某個(gè)指定的元素,返回true。
IteratorEiterator():返回這個(gè)集合中的全部元素的迭代。
booleanadd(Ee):向集合中添加新的元素,假如添加勝利,返回true。
booleanremove(Ee):從集合中刪除指定元素,假如刪除勝利,返回true。
booleancontainsAll(Collection?c):這個(gè)集合是否包含指定集合中的全部的元素。booleanaddAll(Collection?e*tendsEc):添加指定的集合中的全部元素到這個(gè)集合中。
booleanremoveAll(Collection?c):刪除當(dāng)前集合中與給定集合相同的元素。在這個(gè)調(diào)用返回之后,這個(gè)集合將不包含和指定的集合一樣的元素。
booleanretainAll(Collection?c):從這個(gè)集合中刪除全部不包含在指定的集合中的全部元素。
TT[]toArray(T[]a):返回一個(gè)包含集合中全部的元素的數(shù)組。
voidclear():從集合中刪除全部的元素。
booleanequals(Objectobj):比較這個(gè)集合和指定對(duì)象是否相等。
inthashCode():返回這個(gè)集合的哈希值。
三、List接口
List接口繼承了Collection接口,用于定義一個(gè)允許重復(fù)項(xiàng)的有序集合??梢詫ist理解為存放對(duì)象的數(shù)組,只不過(guò)其元素個(gè)數(shù)可以動(dòng)態(tài)的增加或者減削。該接口不但能夠?qū)α斜淼囊徊糠诌M(jìn)行處理,還添加了面對(duì)位置的操作。
面對(duì)位置的操作包括插入某個(gè)元素或Collection的功能,還包括獵取、除去或更改元素的功能。在List中搜尋元素可以從列表的頭部或尾部開始,假如找到元素,還將報(bào)告元素所在的位置:
voidadd(intinde*,Objectelement):在指定位置inde*上添加元素element。
booleanaddAll(intinde*,Collectionc):將集合c的全部元素添加到指定位置inde*。Objectget(intinde*):返回List中指定位置的元素。
intinde*Of(Objecto):返回第一個(gè)涌現(xiàn)元素o的位置,否那么返回-1。
intlastInde*Of(Objecto):返回最末一個(gè)涌現(xiàn)元素o的位置,否那么返回-1。
Objectremove(intinde*):刪除指定位置上的元素。
Java的集合框架總結(jié)
Objectset(intinde*,Objectelement):用元素element取代位置inde*上的元素,并且返回舊的元素。
在“集合框架”中有兩種常規(guī)的List實(shí)現(xiàn)ArrayList和LinkedList,分別用動(dòng)態(tài)數(shù)組和鏈表的方式實(shí)現(xiàn)List接口??梢哉J(rèn)為ArrayList和LinkedList的方法在規(guī)律上完全一樣,只是在性能上有肯定的差別。假如要支持隨機(jī)訪問(wèn),而不必在除尾部的任何位置插入或除去元素,那么,ArrayList提供了可選的集合。但假如,您要經(jīng)常的從列表的中間位置添加和除去元素,而只要順次的訪問(wèn)列表元素,那么,LinkedList實(shí)現(xiàn)更好。
1〕LinkedList類
LinkedList類——鏈表實(shí)現(xiàn)的List,在刪除或插入時(shí)只需轉(zhuǎn)變鏈表“指針”,即可實(shí)現(xiàn)。
(1)voidaddFirst(Objecto):將對(duì)象o添加到列表的開頭
voidaddLast(Objecto):將對(duì)象o添加到列表的結(jié)尾
(2)ObjectgetFirst():返回列表開頭的元素
ObjectgetLast():返回列表結(jié)尾的元素
(3)ObjectremoveFirst():刪除并且返回列表開頭的元素
ObjectremoveLast():刪除并且返回列表結(jié)尾的元素
(4)LinkedList():構(gòu)建一個(gè)空的鏈接列表
LinkedList(Collectionc):構(gòu)建一個(gè)鏈接列表,并且添加集合c的全部元素
“運(yùn)用這些新方法,您就可以輕松的把LinkedList當(dāng)作一個(gè)堆棧、隊(duì)列或其它面對(duì)端點(diǎn)的數(shù)據(jù)結(jié)構(gòu)?!?/p>
2〕ArrayList類
ArrayList類——?jiǎng)討B(tài)數(shù)組實(shí)現(xiàn)的List,可以通過(guò)下標(biāo)快速的索引到對(duì)應(yīng)的元素,但在刪除和移動(dòng)時(shí)移動(dòng)較多元素。
ArrayList類封裝了一個(gè)動(dòng)態(tài)再安排的Object[]數(shù)組。每個(gè)ArrayList對(duì)象有一個(gè)capacity。這個(gè)capacity表示存儲(chǔ)列表中元素的數(shù)組的容量。當(dāng)元素添加到ArrayList時(shí),它的capacity在常量時(shí)間內(nèi)自動(dòng)增加。
在向一個(gè)ArrayList對(duì)象添加大量元素的程序中,可運(yùn)用ensureCapacity方法增加capacity。這可以減削增加重安排的數(shù)量。
(1)voidensureCapacity(intminCapacity):將ArrayList對(duì)象容量增加minCapacity
(2)voidtrimToSize():整理ArrayList對(duì)象容量為列表當(dāng)前大小。程序可運(yùn)用這個(gè)操作減削ArrayList對(duì)象存儲(chǔ)空間。
四、List高級(jí)—數(shù)據(jù)結(jié)構(gòu):Queue隊(duì)列
隊(duì)列是常用的數(shù)據(jù)結(jié)構(gòu),可以將〔Queue〕隊(duì)列看成非常的線性表,隊(duì)列限制了對(duì)線性表的訪問(wèn)方式,即只能從線性表的一段添加〔offer〕元素,從另一端取出〔poll〕元素。隊(duì)列遵循先進(jìn)先出〔FIFO〕原那么。
JDK中提供了Queue接口,同時(shí)使得LinkedList實(shí)現(xiàn)該接口〔Queue常常要進(jìn)行插入和刪除的操作,而LinkedList在這方面效率最高〕。
Queue接口中的主要方法:
Booleanoffer〔Ee〕講一個(gè)對(duì)象添加到隊(duì)尾,添加勝利那么返回true。
Epool〔〕從隊(duì)首刪除并返回一個(gè)元素。
Epeek〔)返回隊(duì)首的元素〔但并不刪除〕。
五、List高級(jí)—數(shù)據(jù)結(jié)構(gòu):Deque棧
棧也是常用的數(shù)據(jù)結(jié)構(gòu),?!睤eque〕那么是Queue的子接口,定義了所謂的“雙端隊(duì)列”,即從隊(duì)列的兩端分別可以入隊(duì)〔offer〕和出隊(duì)〔poll〕,假如將Deque限制為只能從一段入隊(duì)
Java的集合框架總結(jié)
和出隊(duì),那么可實(shí)現(xiàn)“?!睸tack〕”的數(shù)據(jù)結(jié)構(gòu),對(duì)于棧而言,入棧稱之為push,出棧稱為pop。棧遵循先進(jìn)后出〔FILO〕原那么。
Deque常用的方法:
Epush〔〕壓入,向棧中存入數(shù)據(jù)。
Epop〔〕取出,從棧中取出數(shù)據(jù)。
Epeek〔〕獵取棧頂位置的元素,但不取出。
六、Set接口
Set接口也是Collection接口的子接口,但是與Collection或List接口不同的是,Set接口中不能加入重復(fù)的元素,是由于Set判斷兩個(gè)對(duì)象相同不是運(yùn)用==運(yùn)算符,而是依據(jù)equals方法。即兩個(gè)對(duì)象用equals方法比較返回true,Set就不能接受兩個(gè)對(duì)象。同時(shí)Set集合里多個(gè)對(duì)象之間沒(méi)有明顯的順次。
其實(shí)Set具有與Collection完全一樣的接口,除了說(shuō)明不一樣其他都一樣,也就是Set根本沒(méi)有對(duì)Collection擴(kuò)展,只是對(duì)add,equals,hashCode的定義說(shuō)明不一樣,由于Set是不允許重復(fù)元素的。但是要留意的是:雖然Set和Collection中的方法一樣,但是他們是完全不一樣的,List可以自動(dòng)為Collection,但是絕對(duì)不能轉(zhuǎn)為Set的。
遍歷Set集合的元素只有一種方式,迭代器。同時(shí)set集合不支持索引,也不具備List集合的get〔〕方法。
Set接口的常用子類:
1〕散列的存放:HashSet
HashSet按Hash算法來(lái)存儲(chǔ)集合的元素,因此具有很好的存取和查找性能。HashSet的特點(diǎn):
〔1〕HashSet不是同步的,多個(gè)線程訪問(wèn)是需要通過(guò)代碼保證同步
〔2〕集合元素值可以使null。
HashSet集合判斷兩個(gè)元素相等的標(biāo)準(zhǔn)是兩個(gè)對(duì)象通過(guò)equals方法比較相等,并且兩個(gè)對(duì)象的hashCode〔〕方法返回值也相等。
其實(shí)原理是這樣的:HashSet的底層采納HashMap來(lái)存放數(shù)據(jù),HashMap的put()方法是這樣的:
publicVput(Kkey,Vvalue){
if(key==null)
returnputForNullKey(value);
inthash=hash(key.hashCode());//1
inti=inde*For(hash,table.length);//2
for(EntryK,Ve=table[i];e!=null;e=e.ne*t){//3
Objectk;
if(e.hash==hash((k=e.key)==key||key.equals(k))){
VoldValue=e.value;
e.value=value;
e.recordAccess(this);
returnoldValue;
}
}//4
modCount++;
addEntry(hash,key,value,i);
Java的集合框架總結(jié)
returnnull;
}
當(dāng)向HashMap中添加元素的時(shí)候,首先計(jì)算元素的hashcode值,然后依據(jù)1處的代碼計(jì)算出Hashcode的值,再依據(jù)2處的代碼計(jì)算出這個(gè)元的存儲(chǔ)位置假如這個(gè)位置為空,就將元素添加進(jìn)去;假如不為空,那么看3-4的代碼,遍歷索引為i的鏈上的元素,假如key重復(fù),那么替換并返回oldValue值。
2〕有序的存放:TreeSet
TreeSet是SortedSet接口的唯一實(shí)現(xiàn),是按排序二叉樹算法來(lái)存儲(chǔ)元素的,TreeSet可以確保集合元素處于排序狀態(tài)〔元素是有序的〕。
七、Map
→Map用于保存具有映射關(guān)系的數(shù)據(jù)〔key-vlaue〕。Map的key不允許重復(fù),即同一個(gè)Map對(duì)象的任何兩個(gè)key通過(guò)equals方法比較總是返回false。
→Map集合與Set集合元素的存儲(chǔ)形式很像,如Set接口下有HashSet、LinkedHashSet、SortedSet〔接口〕、TreeSet、EnumSet等實(shí)現(xiàn)類和子接口,而Map接口下那么有HashMap、LinkedHashMap、SortedMap〔接口〕、TreeMap、EnumMap等實(shí)現(xiàn)類和子接口?!鶰ap的value特別類似List:元素與元素之間可以重復(fù),每個(gè)元素可以依據(jù)索引〔key〕來(lái)查找。
→Map有時(shí)也稱為字典,或關(guān)聯(lián)數(shù)組。
→Map接口中定義如下方法:
voidclear();刪除Map對(duì)象中全部key-value對(duì)。
booleancontainsKey(Objectkey):查詢Map中是否包含指定key,假如包含那么返回true。
booleancontainsValue(Objectvalue):查詢Map中是否包含一個(gè)或多個(gè)value,假如包含那么返回true。
SetentrySet():返回Map中全部包含的key-value對(duì)組成的Set集合,每個(gè)集合元素都是Map.Entry(Entry是Map的內(nèi)部類〕對(duì)象。
Objectget(Obejctkey):返回指定key所對(duì)應(yīng)的value;假如此Map中不包含key,那么返回null。
booleanisEmpty():查詢?cè)揗ap是否為空〔即不包含任何key-value對(duì)〕,假如為空那么返回true。
SetkeySet():返回該Map中全部key所組成的set集合。
Objectput(Objectkey,Objectvalue):添加一個(gè)key-value對(duì),假如當(dāng)前Map中已有一個(gè)與該key相等的key-value對(duì),那么新的key-value對(duì)會(huì)掩蓋原來(lái)的key-value對(duì)。Objectremove(Objectkey):刪除指定key對(duì)應(yīng)的key-value對(duì),返回被刪除key所關(guān)聯(lián)的value,假如該key不存在,返回null。
intsize():返回該Map里的key-value對(duì)的個(gè)數(shù)。
Collectionvalues():返回該Map里全部value組成的Collection。
Map中包括一個(gè)內(nèi)部類:Entry。該類封裝了一個(gè)key-value對(duì),Entry包含三個(gè)方法:Objectgetkey():返回該Entry里包含的key值。
ObjectgetValue():返回該Entry里包含的value值。
ObjectsetValue():設(shè)置該Entry里包含的value值,并返回新設(shè)置的value值?!梢园袽ap理解成一個(gè)非常的Set,只是該Set里包含的集合元素是Entry對(duì)象,而不是一般對(duì)象。
→遍歷Map有三種方式:
Java的集合框架總結(jié)
1、遍歷map中的全部key
publicSetkeySet()調(diào)用keySet〔〕方法會(huì)返回一個(gè)Set集合的實(shí)例,其中保留的元素為Map中全部的Key。
2、遍歷Map中全部的鍵值對(duì)Entry
publicSetentrySet()調(diào)用entrySet〔〕方法會(huì)返回一個(gè)Set集合的實(shí)例,其中保存的元素為Map中的每一組鍵值對(duì),每一個(gè)鍵值對(duì)用一個(gè)Entry實(shí)例保存。
3、遍歷Map中全部的value(不常用)。
→Map接口提供了大量的實(shí)現(xiàn)類,如HashMap和Hashtable等,以及HashMap的子類,LinkedHashMap,還有SortedMap子接口及該接口的實(shí)現(xiàn)類TreeMap。
1〕、HashMap和Hashtable實(shí)現(xiàn)類
HashMap和Hashtable都是Map接口的實(shí)現(xiàn)類,Hashtable是一個(gè)古老的Map實(shí)現(xiàn)類,它從JDK1.0起就有,它包含兩個(gè)煩瑣的方法:elements()(類似于Map接口定義的values()方法〕和keys()〔類似于Map接口定義的keySet()方法),現(xiàn)在很少運(yùn)用這兩種方法。兩點(diǎn)區(qū)分:
Hashtable是一個(gè)線程安全的Map實(shí)現(xiàn),但HashMap是線程擔(dān)心全的實(shí)現(xiàn),所以HashMap比Hashtable的性能高些;但假如多線程訪問(wèn)同一個(gè)Map對(duì)象,運(yùn)用Hashtable實(shí)現(xiàn)類更好。Hashtable不允許運(yùn)用null作為key和value,假如為null,那么引發(fā)NullPointerE*ception異樣;但HashMap可以運(yùn)用null作為key或value。
由于HashMap里的可以不能重復(fù),所以HashMap里最多只有一對(duì)key-value值為null,但可以有很多多項(xiàng)key-value對(duì)的value為null。
HashMap重寫了toString()方法方法總是返回如下格式的字符串:{key1=value1,key2=value2..}
HashMap、Hashtable判斷兩個(gè)key相等的標(biāo)準(zhǔn)是:兩個(gè)key通過(guò)equasl方法比較返回ture,兩個(gè)key的hashCode值相等。
LinkedHashMap類
HashMap有一個(gè)子類:LinkedHashMap,它也是雙向鏈表來(lái)維護(hù)key-value對(duì)的次序,該鏈表定義了迭代順次,該迭代順次與key-value對(duì)的插入順次保持全都。
LinkedHashMap可以避開對(duì)HashMap、Hashtable里的key-value對(duì)進(jìn)行排序〔只要插入key-value對(duì)時(shí)保持順次即可〕。同時(shí)又可避開運(yùn)用TreeMap所增加的成本。
LinkedHashMap需要維護(hù)元素的插入順次,因此性能略低于HashMap的性能,但在迭代訪問(wèn)Map里的全部元素時(shí)將有很好的性能,由于它以鏈表來(lái)維護(hù)內(nèi)部順次。
2〕、SortedMap接口和TreeMap實(shí)現(xiàn)類
Map接口派生了一個(gè)SortedMap子接口,TreeMap為其實(shí)現(xiàn)類。類似TreeSet排序,TreeMap也是基于紅黑樹對(duì)TreeMap中全部key進(jìn)行排序,從而保證TreeMap中全部key-value對(duì)處于有序狀態(tài)。
TreeMap兩種排序方法:
自然排序:TreeMap的全部key需要實(shí)現(xiàn)Comparable接口,而且全部key應(yīng)當(dāng)是同一個(gè)類的對(duì)象,否那么將會(huì)拋出ClassCastE*cepiton異樣。
定制排序:創(chuàng)建TreeMap時(shí),傳入一個(gè)Comparator對(duì)象,該對(duì)象負(fù)責(zé)對(duì)TreeMap中全部key進(jìn)行排序。采納定制排序時(shí)不要求Map的key實(shí)現(xiàn)Comparable接口。
TreeMap中判斷兩個(gè)key相等的標(biāo)準(zhǔn)也是兩個(gè)key通過(guò)equals比較返回true,而通過(guò)compareTo方法返回0,TreeMap即認(rèn)為這兩個(gè)key是相等的。
八、小結(jié)
List:保證以某種特定插入順次來(lái)維護(hù)元素順次,即保持插入的順次,另外元素可以重復(fù)。
Java的集合框架總結(jié)
ArrayList:是用數(shù)組實(shí)現(xiàn)的,讀取速度快,插入與刪除速度慢〔由于插入與刪除時(shí)要移動(dòng)后面的元素〕,適合于隨機(jī)訪問(wèn)。
Vector:功能與ArrayList幾乎相同,也是以數(shù)組實(shí)現(xiàn),添加,刪除,讀取,設(shè)置都是基于線程同步的。
LinkedList:雙向鏈表來(lái)實(shí)現(xiàn),刪除與插入速度快,讀取速度較慢,由于它讀取時(shí)是從頭向尾〔假如節(jié)點(diǎn)在鏈的前半部分〕,或尾向頭〔假如節(jié)點(diǎn)在鏈的后半部分〕查找元素。因此適合于元素的插入與刪除操作。
Set:維持它自己的內(nèi)部排序,隨機(jī)訪問(wèn)不具有意義。另外元素不可重復(fù),內(nèi)部是以Map實(shí)現(xiàn)的。
HashSet:是最常用的,查詢速度最快,由于內(nèi)部以HashMap來(lái)實(shí)現(xiàn),所以插入元素不能保持插入次序。
LinkedHashSet:繼承了HashSet,保持元素的插入次序,由于內(nèi)部運(yùn)用LinkedHashMap實(shí)現(xiàn),所以能保持元素插入次序。
TreeSet:基于TreeMap,生成一個(gè)總是處于排序狀態(tài)的set,它實(shí)現(xiàn)了SortedSet接口,內(nèi)部以TreeMap來(lái)實(shí)現(xiàn)。
Map:用于保存具有映射關(guān)系的數(shù)據(jù)〔key-vlaue〕,Key不允許重復(fù)。
TreeMap:鍵以某種排序規(guī)章排序,內(nèi)部以red-black〔紅-黑〕樹數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn),實(shí)現(xiàn)了SortedMap接口。
HashMap:以哈希表數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn),查找對(duì)象時(shí)通過(guò)哈希函數(shù)計(jì)算其位置,它是為快速查詢而設(shè)計(jì)的,其內(nèi)部定義了一個(gè)hash表數(shù)組〔Entry[]table〕,元素會(huì)通過(guò)哈希轉(zhuǎn)換函數(shù)將元素的哈希地址轉(zhuǎn)換成數(shù)組中存放的索引,假如有沖突,那么運(yùn)用散列鏈表的形式將全部相同哈希地址的元素串起來(lái)。
Hashtable:也是以哈希表數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)的,解決沖突時(shí)與HashMap也一樣也是采納了散列鏈表的形式,不過(guò)性能比HashMap要低。
九、比較
1、ArrayList和Vector
同步性:Vector是線程安全的,也就是說(shuō)是同步的,而ArrayList是線程序擔(dān)心全的,不是同步的。
數(shù)據(jù)增長(zhǎng):當(dāng)需要增長(zhǎng)時(shí),Vector默認(rèn)增長(zhǎng)為原來(lái)一培,而ArrayList卻是原來(lái)的一半
2、Collection和Collections
Collection,java.unit下的接口,是一系列單值集合類的父接口,主要有List和Set,提供了基本的一些方法。而Collections是java.unit下的類,是針對(duì)集合的一些援助類,是一系列算法的集合。里面的屬性和方法基本都是static的,來(lái)實(shí)現(xiàn)對(duì)各種集合的搜尋、排序、線程安全化等操作。
3、Iterator與ListIterator有什么區(qū)分?
Iterator:只能正向遍歷集合,適用于獵取移除元素。ListIerator:繼承Iterator,可以雙向列表的遍歷,同樣支持元素的修改。
4、heap和stack有什么區(qū)分。
?!瞫tack〕是一種線形集合,其添加和刪除元素的操作應(yīng)在同一段完成。棧根據(jù)后進(jìn)先出的方式進(jìn)行處理。
堆〔heap〕是棧的一個(gè)組成元素。
十、總結(jié)
Java的集合框架總結(jié)
關(guān)于集合框架的只是很雜,很亂。我也只是依據(jù)咱們的學(xué)習(xí)總結(jié)了一些咱們常常需要用到和面試會(huì)常??嫉降闹R(shí)點(diǎn)。我盼望每一個(gè)同學(xué)都能抽出那么幾分鐘看一看這個(gè),來(lái)讓我們的大腦再加深一下關(guān)于集合的印象。本文我沒(méi)有運(yùn)用代碼進(jìn)行演示,望大家諒解,感謝您的參考!
Java的集合框架總結(jié)
JAVA集合框架
一、集合框架
在實(shí)際開發(fā)中,需要將對(duì)象依據(jù)不同的需求而存儲(chǔ)在特定的數(shù)據(jù)結(jié)構(gòu)容器中。但是數(shù)組雖然是一種用來(lái)存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),但是它的局限性很低,很難滿意各種的需求,所以JDK涌現(xiàn)了用來(lái)滿意各種需求的框架——集合框架。
“集合框架”主要由一組用來(lái)操作對(duì)象的接口組成。不同接口描述一組不同數(shù)據(jù)類型。常見(jiàn)的集合類有:1〕實(shí)現(xiàn)Collection接口的:List接口、Set接口。
2〕實(shí)現(xiàn)Map接口的。
二、Collection接口
Collection接口表示了如何把一組對(duì)象作為它的元素。JDK沒(méi)有徑直提供Collection接口的實(shí)現(xiàn),Collection接口的實(shí)現(xiàn)依靠于兩個(gè)繼承自自己的接口:Set和List。全部通過(guò)實(shí)現(xiàn)Collection接口的子接口的類應(yīng)當(dāng)提供兩個(gè)標(biāo)準(zhǔn)的構(gòu)造器:一個(gè)不需要參數(shù)的構(gòu)造器,用來(lái)創(chuàng)建一個(gè)空的集合,另外一個(gè)需要一個(gè)類型作為參數(shù)的構(gòu)造器,用來(lái)創(chuàng)建一個(gè)和參數(shù)的類型相同的元素的集合。
intsize():返回這個(gè)集合中的元素的數(shù)量。
booleanisEmpty():返回集合是否包含元素,假如沒(méi)有的話,返回true。booleancontains(Ee):假如這個(gè)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030白酒項(xiàng)目可行性研究報(bào)告
- 2025-2030電動(dòng)和非電動(dòng)輪椅行業(yè)市場(chǎng)現(xiàn)狀供需分析及重點(diǎn)企業(yè)投資評(píng)估規(guī)劃分析研究報(bào)告
- 2025-2030玻璃酒瓶市場(chǎng)前景分析及投資策略與風(fēng)險(xiǎn)管理研究報(bào)告
- 2025-2030物流中心產(chǎn)業(yè)市場(chǎng)發(fā)展分析及發(fā)展趨勢(shì)與投資研究報(bào)告
- 2025-2030煤油行業(yè)行業(yè)風(fēng)險(xiǎn)投資發(fā)展分析及投資融資策略研究報(bào)告
- 2025-2030滅蚊燈行業(yè)行業(yè)風(fēng)險(xiǎn)投資發(fā)展分析及投資融資策略研究報(bào)告
- 2025-2030汽柴油清潔劑產(chǎn)業(yè)發(fā)展分析及發(fā)展趨勢(shì)與投資前景預(yù)測(cè)報(bào)告
- 2025-2030水彩顏料市場(chǎng)發(fā)展分析及行業(yè)投資戰(zhàn)略研究報(bào)告
- 2025-2030氣動(dòng)夾鉗行業(yè)市場(chǎng)現(xiàn)狀供需分析及重點(diǎn)企業(yè)投資評(píng)估規(guī)劃分析研究報(bào)告
- 2025-2030模擬音頻放大器行業(yè)市場(chǎng)現(xiàn)狀供需分析及重點(diǎn)企業(yè)投資評(píng)估規(guī)劃分析研究報(bào)告
- 【真題】2023年南京市中考語(yǔ)文試卷(含答案解析)
- 東軟集團(tuán)能力測(cè)試題答案
- 中藥不良反應(yīng)影響因素概述
- 腎性貧血健康宣教課件
- 心理班會(huì)設(shè)計(jì)方案及流程
- 呼吸科護(hù)士的專業(yè)素質(zhì)與職業(yè)道德建設(shè)
- 大型風(fēng)電場(chǎng)智能運(yùn)維方案
- LMX2594實(shí)現(xiàn)跳頻的編程時(shí)序分析
- 巨幼細(xì)胞貧血診療規(guī)范2022版
- 領(lǐng)導(dǎo)力與企業(yè)文化、企業(yè)管理之辯證關(guān)系-以泰州港務(wù)集團(tuán)為案例的研究的開題報(bào)告
- 網(wǎng)絡(luò)協(xié)議逆向工程技術(shù)
評(píng)論
0/150
提交評(píng)論