集合類的由來:
對(duì)象用于封裝特有數(shù)據(jù),對(duì)象多了需要存儲(chǔ),如果對(duì)象的個(gè)數(shù)不確定。
就使用集合容器進(jìn)行存儲(chǔ)。
集合特點(diǎn):
1,用于存儲(chǔ)對(duì)象的容器。
2,集合的長(zhǎng)度是可變的。
3,集合中不可以存儲(chǔ)基本數(shù)據(jù)類型值。
集合容器因?yàn)閮?nèi)部的數(shù)據(jù)結(jié)構(gòu)不同,有多種具體容器。
不斷的向上抽取,就形成了集合框架。
框架的頂層Collection 接口:
Collection 的常見方法:
1,添加
boolean add(Object obj);
boolean addAll(Collection coll);
2,刪除
boolean remove(object obj);
boolean removeAll(Collection coll);
void clear( );
3,判斷:
boolean contains(object obj);
boolean containsAll(Collection coll);
boolean isEmpty ( ):判斷集合中是否有元素。
4,獲取:
int size( );
iterator( ) : 取出元素的方式:迭代器。
該對(duì)象必須依賴于具體容器,因?yàn)槊恳蝗萜鞯臄?shù)據(jù)結(jié)構(gòu)都不同。
所以該迭代器對(duì)象是在容器中進(jìn)行內(nèi)部實(shí)現(xiàn)的。
對(duì)于使用容器者而言,具體的實(shí)訓(xùn)不重要,只要通過容器獲取到該實(shí)現(xiàn)的迭代器的對(duì)象即可。
也就是iterator 方法。
Iterator 接口就是對(duì)所有的Collection容器進(jìn)行元素取出的公共接口。
其實(shí)就是抓娃娃游戲機(jī)中的夾子。
5,其他:
boolean retainAll(Collection coll); 取交集。
Object[ ] toArray( ):將集合轉(zhuǎn)成數(shù)組。
Collection
|--List:有序(存入和取出的順序一致)
|--Set:元素不能重復(fù),無序。
List:特有的常見方法:有一個(gè)共性特點(diǎn)就是都可以操作角標(biāo)。
1,添加
void add(index,element);
void add(index,collection);
2,刪除
Object remove(index);
3,修改
Object set(index,element);
4,獲取
Object get(index);
int indexOf(object);
int lastIndexOf(object);
List subList(from,to);
list 集合是可以完成對(duì)元素的增刪改查。
List:
|--Vector:內(nèi)存是數(shù)組數(shù)據(jù)結(jié)構(gòu),是同步的。增刪、查詢都很慢。(數(shù)組自動(dòng)延長(zhǎng)100%)
|--ArrayList:內(nèi)部是數(shù)組數(shù)據(jù)結(jié)構(gòu),是不同步的。替代了Vector。查詢的速度快。(數(shù)組自動(dòng)延長(zhǎng)50%)
|--LinkedList:內(nèi)部是鏈表數(shù)據(jù)結(jié)構(gòu),是不同步的。增刪元素的速度很快。