Java集合框架

 

 2012053020261738

Iterable接口

實現該接口的類,對象能夠經過foreach方式遍歷。數組

該接口中只定義了一個方法,返回iterator對象。安全

image

Iterator接口

這是一個用於遍歷集合中元素的接口,主要包含hashNext(),next(),remove()三種方法。它的一個子接口LinkedIterator在它的基礎上又添加了三種方法,分別是add(),previous(),hasPrevious()。也就是說若是是先Iterator接口,那麼在遍歷集合中元素的時候,只能日後遍歷,被遍歷後的元素不會在遍歷到,一般無序集合實現的都是這個接口,好比HashSet,HashMap;而那些元素有序的集合,實現的通常都是LinkedIterator接口,實現這個接口的集合能夠雙向遍歷,既能夠經過next()訪問下一個元素,又能夠經過previous()訪問前一個元素,好比ArrayList。性能

image

Collection接口

image

繼承了Iterable接口,可以使用foreach遍歷。優化

子接口有:線性表 List接口,去重集合Set接口,隊列Queue接口。線程

& 經常使用操做3d

添加元素:add/addAll 對象

清空集合:clear blog

刪除元素:remove/removeAll 繼承

判斷集合中是否包含某元素:contains/containsAll 接口

判斷集合是否爲空:isEmpty

計算集合中元素的個數:size

將集合轉換爲數組:toArray

獲取迭代器:iterator

& 遍歷

1)迭代器 Iterator

2)foreach遍歷

List接口

對數組的有效擴展。數組的容量是固定的,而List的容量是動態擴展的。

經常使用的實現類:ArrayList(基於數組), LinkedList(鏈表存儲),Vector(線程安全的,基於數組),其中Vector還有一個子類Stack, 但Vector和Stack類已經不多使用了。

List中能夠存儲null,即便使用了泛型。

& ArrayList  包裝了一個數組, 當實例化一個ArrayList時,會實例化該數組。 向ArrayList添加對象時,ArrayList也在調整着數組的大小。優點是快速訪問,get()方法很是快。缺點是插入刪除操做慢,由於建立數組時並不能肯定容量,因此在插入時,一方面須要擴容,另外一方面須要把位置i以後的全部元素都向後移。

& LinkedList  鏈式存儲,插入刪除很是快,只須要修改節點引用 。新的節點能夠存儲在內存中的任何地方。缺點是不能快速訪問,get()方法是經過遍歷節點來定位的。

Set接口

set接口是一種不包含重複元素的Collection。

經常使用的實現類有HashSet和TreeSet。

HashSet使用哈希法來優化查詢速度。不保證元素的存儲順序,尤爲是存儲順序會動態變化(哈希表擴容引發)。

容許使用null元素。

TreeSet的性能不如HashSet,由於它須要維護元素有序。

Map接口

Map接口提供key到value的映射。不能包含相同的Key, 一個key只能映射一個value。

提供3種集合視圖:key集合, value集合, key-value映射。

經常使用實現類:HashMap, TreeMap, Hashtable, LinkedHashMap。

相關文章
相關標籤/搜索