一、Collection簡述
Collection為集合的接口,JDK沒有提供其實現類;
1、Collection具有兩個比較常用的子接口,List和Set;
2、List接口用於存儲有有序的可重復的元素,Set接口用於存儲無序的不可重復的元素;
3、List接口比較常用的實現類有ArrayList和LinkedList,ArrayList的底層實現是數組,儲存在一段連續的內存空間中,具有索引,具有增刪慢和查詢快的特點;LinkedList的實現是在其內部具有Node的內部類,該類具有element、previous、next成員變量,在LinkList中添加元素時,會創建一個Node的對象並初始化這三個成員變量,因此可以從LinkedList中的任何一個元素找到其向上和向下的相鄰的元素,LinkList具有增刪快、查詢慢的特點;
4、Set接口的比較常用的實現類是HashSet,其實現原理是數組、鏈表和哈希表(數組上的每個位置是一個鏈表),在添加元素時計算該元素的哈希值確定在數組上的位置,然后檢查該位置上是否有元素,如果沒有,則將該元素添加在該位置,如果該位置有元素,則逐一檢查該位置上的鏈表中是否有蓋元素,如果沒有則添加到最后一個節點,否則不添加;
2、Collection中的常用方法
1、增
add(E e)---boolean,向集合中添加元素e(確保集合對象中有元素e);
注:如果在ArrayList對象中添加元素e,返回值永遠為true;如果向HashSet對象中添加元素e,若e不存在,返回true,否則返回false.
add(Collection<? extends E> c)---返回boolean,將指定集合的所有元素添加到集合中;
2、刪
remove(object o)---boolean,刪除集合中的指定元素;
注:如果是ArrayList和LinkList對象刪除元素o,遍歷元素,僅刪除第一個;
clear()---void,清空集合;
3、size()
int,返回集合中的元素個數;
4、isEmpty()