集合類(lèi)的由來(lái):
對(duì)象用于封裝特有數(shù)據(jù)乡范,對(duì)象多了需要存儲(chǔ)配名,如果對(duì)象的個(gè)數(shù)不確定。
就使用集合容器進(jìn)行存儲(chǔ)晋辆。
集合特點(diǎn):
1渠脉,用于存儲(chǔ)對(duì)象的容器。
2瓶佳,集合的長(zhǎng)度是可變的芋膘。
3,集合中不可以存儲(chǔ)基本數(shù)據(jù)類(lèi)型值涩哟。
集合容器因?yàn)閮?nèi)部的數(shù)據(jù)結(jié)構(gòu)不同索赏,有多種具體容器。
不斷的向上抽取贴彼,就形成了集合框架潜腻。
框架的頂層Collection 接口:
Collection 的常見(jiàn)方法:
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ì)象必須依賴(lài)于具體容器轨香,因?yàn)槊恳蝗萜鞯臄?shù)據(jù)結(jié)構(gòu)都不同忽你。
所以該迭代器對(duì)象是在容器中進(jìn)行內(nèi)部實(shí)現(xiàn)的。
對(duì)于使用容器者而言臂容,具體的實(shí)訓(xùn)不重要科雳,只要通過(guò)容器獲取到該實(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ù),無(wú)序凌净。
List:特有的常見(jiàn)方法:有一個(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),是同步的翰苫。增刪止邮、查詢(xún)都很慢。(數(shù)組自動(dòng)延長(zhǎng)100%)
|--ArrayList:內(nèi)部是數(shù)組數(shù)據(jù)結(jié)構(gòu)奏窑,是不同步的导披。替代了Vector。查詢(xún)的速度快埃唯。(數(shù)組自動(dòng)延長(zhǎng)50%)
|--LinkedList:內(nèi)部是鏈表數(shù)據(jù)結(jié)構(gòu)撩匕,是不同步的。增刪元素的速度很快墨叛。