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

導讀:爲了解決數組長度固定不變無法適應變化情況,無法獲取對象真實的儲存個數,查找效率低下等問題,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異常,即類型轉換異常。







發佈了47 篇原創文章 · 獲贊 7 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章