- [ ] 介紹Java中的Collection FrameWork。集合類框架的基本接口有哪些
- [ ] List, Set, Map三個(gè)接口,存取元素時(shí)各有什么特點(diǎn)
- [ ] List, Set, Map 是否繼承自 Collection 接口
集合即存儲(chǔ)對(duì)象的容器。
在程序中有可能無法預(yù)知需要多少對(duì)象。數(shù)組雖然也可以存儲(chǔ)對(duì)象,但長(zhǎng)度是固定的,不好定義。但集合類容器的長(zhǎng)度可變。每一個(gè)容器對(duì)數(shù)據(jù)的存儲(chǔ)方式(數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu))都有不同,所以有不同的集合類。
集合類框架(Java Collection Framework)
在java中有一套設(shè)計(jì)優(yōu)良的接口和類組成了Java集合框架,通過集合可以方便地操作成批的數(shù)據(jù)或?qū)ο笤亍?/p>
所有的Java集合都在java.util包中。
- Collection集合類
- Map集合
集合類框架的基本接口
從以上可以看書,頂端有四個(gè)接口:Collection、Map、List、Set。其中,List和Set接口繼承自Collection接口。
- Collection接口:
Collection是單列集合的根接口,是元素集合。定義了存取一組對(duì)象的方法,其子接口List、Set分別定義了存取方式。
Collection接口繼承了Iterable接口,其中繼承的最重要的方法是iterator()。
- List接口
List是有序元素集合,可以包含重復(fù)元素。
實(shí)現(xiàn)List接口的常用類有ArrayList,LinkedList,Vector,Stack四種,其中,Stack繼承自Vector。
- Set接口
Set是無序元素集合,不包含重復(fù)元素。即任意的兩個(gè)元素都有e1.equals(e2)=false,Set最多有一個(gè)null元素。
實(shí)現(xiàn)Set接口的類有HashSet,TreeSet,LinkedHashSet。
- Map接口
Map是雙列集合的根接口,用于存儲(chǔ)具有鍵(key)、值(value)映射關(guān)系的元素。一個(gè)Map中的key不能重復(fù)。Map接口提供3種集合的視圖,Map的內(nèi)容可以被當(dāng)作一組key組合、一組value組合、或一組key-value映射。
實(shí)現(xiàn)Map接口的類有HashMap,HashTable,TreeMap,LinkedHashMap。
List, Set, Map三個(gè)接口,存取元素時(shí)的特點(diǎn)
1.List接口存取元素:
List中有順序,可重復(fù)。
存元素: (1)調(diào)用add(Object)方法,多次調(diào)用時(shí),每次加入的對(duì)象按先來后到的順序排序。
(2)調(diào)用add(int index,Object),可以插隊(duì),指定當(dāng)前對(duì)象在集合中的位置進(jìn)行存放。取元素:(1)Iterator方法取得所有元素,再逐一遍歷各個(gè)元素。
(2)調(diào)用get(index)來明確說明取第幾個(gè)元素。
2.Set接口存取元素:
Set無序,不可重復(fù)。
存元素:add(),add方法有一個(gè)boolean的返回值,當(dāng)集合中沒有該元素時(shí),可成功加入,返回true;當(dāng)集合中存在于該元素equals相等的元素時(shí),無法加入該元素,返回結(jié)果為false。
取元素:因?yàn)闊o序,不能說明取第幾個(gè)。只能以Iterator方法取得所有元素,再逐一遍歷各個(gè)元素。
3.Map接口存取元素:
Map存放鍵值對(duì),鍵不能重復(fù)。
*存元素:用put方法,put(obj key,obj value)。每次存儲(chǔ),要存儲(chǔ)一對(duì)key,value,不能存放重復(fù)的key,判斷是否重復(fù),按equals來比較。
*取元素:可以用get(Object key)根據(jù)key獲得相應(yīng)的value;也可以獲得所有的key的集合;也可以獲得所有的value的集合;也可以獲得key和value組合成的Map.Entry對(duì)象的集合。
補(bǔ)充:
Iterable接口,Iterator方法
List、Set、Map的實(shí)現(xiàn)類詳解