Java集合框架的概念以及常用介面的介紹

Nirvana8921發表於2018-03-28

導讀:為了解決陣列長度固定不變無法適應變化情況,無法獲取物件真實的儲存個數,查詢效率低下等問題,Java集合框架為我們開發了一套效能優良,使用方便的介面和類,用來儲存資料和進行各種資料操作,位於java.util包中。集合框架包含三大塊內容:對外的介面,介面的實現,和對集合運算的演算法。

Java集合框架簡圖

特徵:

*List,Set,Map將持有物件一律視為Object型別。

*Collection、List、Set、Map都是介面,不能例項化,例如:List li=null ,會報空指標異常。

繼承自它們的 ArrayList, Vector, HashTable, HashMap是具象class,這些才可被例項化。


List介面

  List介面通常表示一個列表(陣列、佇列、連結串列、棧等),其中的元素有序、可以重複,常用實現類為ArrayList和LinkedList,另外還有不常用的Vector。另外,LinkedList還實現了Queue介面,因此也可以作為佇列使用。List和陣列類似,List可以動態增長,相當於動態陣列,查詢元素效率高,插入刪除元素效率低,因為會引起其他元素位置改變。

Set介面

  Set介面通常表示一個集合,其中的元素有序的集合,不允許重複。Set以雜湊表的形式存放元素,檢索元素效率低下,刪除和插入效率高,插入和刪除不會引起元素位置改變。

Map介面

Map是一個對映介面,其中的每個元素都是一個key-value鍵值對。Map主要用於儲存健值對,不要求有序,它是根據鍵得到值,因此不允許鍵重複,但允許值重複

Iterator迭代器

  Iterator是遍歷集合的迭代器(不能遍歷Map,只用來遍歷Collection),Collection的實現類都實現了iterator()函式,它返回一個Iterator物件,用來遍歷集合,ListIterator則專門用來遍歷List。

工具類

  Arrays和Collections是用來運算元組、集合的兩個工具類,例如在ArrayList和Vector中大量呼叫了Arrays.Copyof()方法,而Collections中有很多靜態方法可以返回各集合類的synchronized版本,即執行緒安全的版本,當然了,如果要用執行緒安全的結合類,首選Concurrent併發包下的對應的集合類。

泛型集合

  例: Map<String, String> dog=new HashMap<String, String>();      

          List<Dog> dogs=new ArrayList<Dog>();

           泛型集合用<>標記元素型別,在建立集合物件時強制指定了集合中元素的型別,在從集合中取出元素時無需進行型別強制轉換,避免了ClassCastException異常,即型別轉換異常。







相關文章