7.談談對集合的理解

Java集合框架圖

         Java集合是java提供的一個工具包,全部繼承自java.util.*。主要包括兩大接口Collection接口和Map接口以及相關的工具類(Iterator迭代器接口、Enumeration枚舉類、ArraysColletions)。

     (1)Collection是一個接口,包含List列表和Set集合。其中List是有序的隊列,元素值可以重複,索引從0開始,實現類有LinkedListArrayListVector;而Set是一個不允許有重複元素的集合,Set的實現類有HashSetTreeSetHashSet依賴於HashMap,它實際上是通過HashMap實現的;TreeSet依賴於TreeMap,它實際上是通過TreeMap實現的。
     (2)Map是一個映射接口,通過key-value鍵值對實現。實現類有HashMapTreeMapWeakHashMapHashtable
     (3)Iterator是遍歷集合的工具,Enumeration也是遍歷集合,但它的的功能要比Iterator少,只能在Hashtable, Vector, Stack中使用。
      (4)Arrays和`Collections是操作數組、集合的兩個工具類。

下面是具體一點的比較:
      (1) ArrayList, LinkedList, Vector, Stack是List的4個實現類,比較他們的異同。

     1)ArrayList 是一個數組隊列,相當於動態數組。它由數組實現,隨機訪問效率高,隨機插入、隨機刪除效率低。

     2)LinkedList 是一個雙向鏈表。它也可以被當作堆棧、隊列或雙端隊列進行操作。LinkedList隨機訪問效率低,但隨機插入、隨機刪除效率高。

     3)Vector 是矢量隊列,和ArrayList一樣,它也是一個動態數組,由數組實現。但是ArrayList是非線程安全的,而Vector是線程安全的。

     4)Stack 是棧,它繼承於Vector。它的特性是:先進後出(FILO, First In Last Out)。

 

      (2)HashMapHashTableTreeMap的區別

     1)HashMap是鍵值對的方式存儲的,但不能保證次序,單線程;

     2)HashTableHashMap存儲方式相同,但是是線程安全的;

     3)TreeMap是有序的鍵值對,基於紅黑樹排序。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章