Java集合源碼位於Java.util包下,主要包括List、Set、Map、Iterator以及工具類Arrays和Collections。Java集合框架的頂級接口包括Collection和Map兩個,其中Collection的子接口包括List、Set和Queue。具體結構如下:
1 Collection接口
Collection是集合的頂級接口之一,他繼承了Iterable接口,並聲明瞭集合中一些常用的方法,例如size(),contains(Object o)等方法。Java SDK提供了繼承與Collection的子接口List、Set或者Queue,並通過實現子接口實現了具體集合類。所有實現Collection接口的類都必須提供兩個標準的構造函數:無參數的構造函數用於創建一個空的Collection,有一個 Collection參數的構造函數用於創建一個新的Collection,這個新的Collection與傳入的Collection有相同的元素。後 一個構造函數允許用戶複製一個Collection。
1.1 List接口
List接口繼承與Collection接口,它是一個允許有重複元素的的列表,能夠控制元素的插入位置,通過索引來訪問List中的元素。常見的List的實現有LinkedList,ArrayList,Vector和Stack。
1.2 Set接口
Set接口同樣繼承與Collection接口,它不允許有重複的元素。常用實現類有HashSet和TreeSet,HashSet是通過Map中的HashMap實現的,而TreeSet是通過Map中的TreeMap實現的。另外,TreeSet還實現了SortedSet接口,因此是有序的集合。
1.3 Queue接口
Queue接口繼承與Collection接口,提供一種先進先出的機制,常見的實現類有ArrayBlockingQueue、ConcurrentLinkedQueue等,這些實現類都處於concurrent包下,用於線程同步機制的實現。
2 Map接口
Map接口是和Collection接口並行的頂級集合接口,他提供key-value映射機制。Map接口常見的實現類有HashTable、Hashmap以及Weakhashmap等。
參考:
[1] http://blog.csdn.net/softwave/article/details/4166598
[2] http://blog.csdn.net/mazhimazh/article/details/17730517
[3] http://blog.csdn.net/ns_code/article/details/35564663