集合類的由來:
對象用于封裝特有的資料,對象多了就需要存儲,
如果對象的個數不确定,就使用集合來存儲
集合特點:
1,用于存儲對象的容器。
2,集合的長度是可變的。
3,集合中不可以存儲基本資料類型值。
集合容器因為内部的資料結構不同,有多種容器。
不斷向上抽取就形成了集合架構。
架構的頂層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 iterator():取出元素的方式:疊代器。
該對象必須依賴具體容器,因為每一個容器的資料結構都不同
是以該疊代器對象是在容器中進行内部實作的
對于使用容器者而言,具體的實作不重要,隻要通過容器擷取到該實作的疊代器的對象即可
也就是iterator方法
Iterator接口就是對所有的Collection容器進行元素取出的公共接口
5,其他:
boolean retainAll(Collection coll):取交集
Object[] toArray():将集合轉成數組
Collection
|–List:有序(存入和取出的順序一緻),元素都有索引(角标)。元素可以重複
|–Set:元素不能重複,無序。
**List特有的常見方法:**有一個共性特點就是都可用操作角标
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集合是可以完成對元素的增删改查的
List:
List接口中常用的對象:
|—Vector:内部是數組資料結構。是同步的(效率低,相對安全的)增删、查詢都很慢!
|—ArrayList:内部是數組資料結構,是不同步的。替代了vector。查詢的速度快(因為數組空間是連續的),增 删速度較慢(數組中所增删部分後面都要移動)。
|—LinkedList:内部連結清單資料結構,是不同步的。增删元素速度很快,查詢速度慢(空間不連續)