在介紹具體的集合之前,本篇文章對Java中的集合框架做一個大致描述,從一個高的角度俯視這個框架,瞭解了這個框架的一些理念與約定,會大大幫助後面分析某個具體類,讓我們開始吧。
1.集合框架(collections framework)
在計算機領域,集合一般是指對象的集合,框架則是指有明確關係的集合的集合,其實這些新名詞都是一個統稱,歸根結底集合也是一個類,只不過是一個可以儲存並且處理多個其他對象的類,而框架就是類之間的整體關係。這是一種存儲思想,其實說白了,可以把一個集合看成一個微型數據庫,操作不外乎“增刪改查”四種操作。
2.兩大基類Collection與Map
Collection
或Map
的集合類,會提供兩個“標準”的構造函數:1.沒有參數的構造函數,創建一個空的集合類
2.有一個類型與基類(Collection
或Map
)相同的構造函數,創建一個與給定參數具有相同元素的新集合類
因爲接口中不能包含構造函數,所以上面這兩個構造函數的約定並不是強制性的,但是在目前的集合框架中,所有繼承自Collection
或Map
的子類都遵循這一約定。
3.List Set Map基本集合
1.List Set都是繼承Collection的接口,List元素有放入順序,元素可以重複;Set元素放入無順序,重複元素被覆蓋。
Set:檢索元素效率低下,刪除和插入效率高,插入和刪除不會引起元素位置改變。
List:和數組類似,List可以動態增長,查找元素效率高,插入刪除元素效率低,因爲會引起其他元素位置改變。
2.Map單獨存在,是一個適合存儲鍵值對的集合。
4. 使用方法
這三大基本集合都是接口,因此使用的時候一般都用他們的實現類,也就是ArrayList LinkedList HashMap HashTable,ConCurrentHashMap,eg:List<String> list = new ArrayList<String>();
其實這些集合的東西歸根結底都是基本的三大數據結構,線性表,鏈表,和散列表,以上常用的類都是基於這些數據結構單獨實現或組合。