集合 : 用存放對象的容器(集合)
Collection : 跟接口 : 單列集合
---> List :有序的 ,元素是可以重復的。
---> Set : 無序的 ,元素是不可以重復的。
Collectionz紅常用的方法:
增
add();添加一個元素
addAll();A.addAll(B) 將B中的元素添加到A中。
刪
remove(Object o); 移除指定的對象。
removeAll(Collection c);A.removeAll(B); 刪除A中含有B的元素。
clear(); 清空所有的元素
判斷:
contains(Object); 判斷集合中是否含有某一個對象。 實際上還是以equals來比較的對象。
如果比較的自定義的對象 這個時候可能需要重寫equals和hashCode方法。
containsAll(Collection c); A.containsAll(B);判斷A中是否包含有B集合。
isEmpty() : 判斷集合是否為空。
將集合轉為數組 :
toArray(); 數組是一個對象數組。遍歷集合的方法。
集合比數組的優勢:
1.集合可以存任意類型的對象,長度的可變的
2.數組只能同一種類型變量,長度是固定的。
3.集合中只能存對象
List集合 : 接口 提供公有的方法
特有的方法:
1.list中的特有方法都是通過下標來操作元素。
查找 :
add(int index, Object o) ; 添加元素到指定的位置。
get(int index);獲取集合中指定位置的元素。
set(int index,Object o); 用來修改集合中指定位置元素的值。
迭代器:
作用:操作集合中元素。 可以增刪改查
根迭代器 : Iterator 接口 集中獲取迭代器 :通過集合中方法來獲取。
collection 集合中獲取迭代器:iterator();
迭代器中的方法:
hasNext(); 判斷當前指針指向的位置是否有元素
next(); 獲取當前指針指向的元素,並且指針下移一位
remove(); 移除最后操作時指針指向的元素。
ListIterator :
特有方法:
hasProvious();判斷當前指針指向的上一個位置是否存在元素。
provious(); 獲取上一個元素。
proviousIndex();獲取上一個元素所在的位置。
add(); 在當前指針指向的位置添加一個元素
set(); 修改當前指針指向的元素。
注意點:
1.add 和 set 不能過同時使用。
2.如果你是用了迭代器來操作元素,那么就不用再用集合來操作元素了。
ArrayList : 底層是維護一個Object[]o數組,默認容量是10 ,如果容量不夠增加到原來的1.5倍。
優點 : 查找快 ,增刪慢。
trimToSize();調整集合的容量和數據保持一致。
ensureCapacity(int minCapacity) 自定容量。
LinkedList : 鏈接列表實現, 特點:添加元素比較快,查找慢。