實現該接口的類,對象能夠經過foreach方式遍歷。數組
該接口中只定義了一個方法,返回iterator對象。安全
這是一個用於遍歷集合中元素的接口,主要包含hashNext(),next(),remove()三種方法。它的一個子接口LinkedIterator在它的基礎上又添加了三種方法,分別是add(),previous(),hasPrevious()。也就是說若是是先Iterator接口,那麼在遍歷集合中元素的時候,只能日後遍歷,被遍歷後的元素不會在遍歷到,一般無序集合實現的都是這個接口,好比HashSet,HashMap;而那些元素有序的集合,實現的通常都是LinkedIterator接口,實現這個接口的集合能夠雙向遍歷,既能夠經過next()訪問下一個元素,又能夠經過previous()訪問前一個元素,好比ArrayList。性能
繼承了Iterable接口,可以使用foreach遍歷。優化
子接口有:線性表 List接口,去重集合Set接口,隊列Queue接口。線程
& 經常使用操做3d
添加元素:add/addAll 對象
清空集合:clear blog
刪除元素:remove/removeAll 繼承
判斷集合中是否包含某元素:contains/containsAll 接口
判斷集合是否爲空:isEmpty
計算集合中元素的個數:size
將集合轉換爲數組:toArray
獲取迭代器:iterator
& 遍歷
1)迭代器 Iterator
2)foreach遍歷
對數組的有效擴展。數組的容量是固定的,而List的容量是動態擴展的。
經常使用的實現類:ArrayList(基於數組), LinkedList(鏈表存儲),Vector(線程安全的,基於數組),其中Vector還有一個子類Stack, 但Vector和Stack類已經不多使用了。
List中能夠存儲null,即便使用了泛型。
& ArrayList 包裝了一個數組, 當實例化一個ArrayList時,會實例化該數組。 向ArrayList添加對象時,ArrayList也在調整着數組的大小。優點是快速訪問,get()方法很是快。缺點是插入刪除操做慢,由於建立數組時並不能肯定容量,因此在插入時,一方面須要擴容,另外一方面須要把位置i以後的全部元素都向後移。
& LinkedList 鏈式存儲,插入刪除很是快,只須要修改節點引用 。新的節點能夠存儲在內存中的任何地方。缺點是不能快速訪問,get()方法是經過遍歷節點來定位的。
set接口是一種不包含重複元素的Collection。
經常使用的實現類有HashSet和TreeSet。
HashSet使用哈希法來優化查詢速度。不保證元素的存儲順序,尤爲是存儲順序會動態變化(哈希表擴容引發)。
容許使用null元素。
TreeSet的性能不如HashSet,由於它須要維護元素有序。
Map接口提供key到value的映射。不能包含相同的Key, 一個key只能映射一個value。
提供3種集合視圖:key集合, value集合, key-value映射。
經常使用實現類:HashMap, TreeMap, Hashtable, LinkedHashMap。