1. 程式人生 > >java的collection、map詳細分類

java的collection、map詳細分類

Collection 
-list【有序,可重複】
-ArrayList:隨機訪問比較快,執行緒不安全,可以通過Collections.synchronizedList(list),ArrayList每次對size增長50%. 
-Vector:執行緒安全,jdk1.1就有了,效率太差。
-LinkedList:基於連結串列,插入,刪除快。 還實現了Deque介面。
-set【無序,不可重複】
-HashSet:訪問塊,無序,不同步,可以新增N個null,但是元素值只有一個是null。元素是否相等通過equals方法。 --執行緒不安全
-LinkedHahSet:連結串列維護插入順序。迭代訪問較快。 --執行緒不安全
-TreeSet:是SortedSet介面的實現類,根據集合元素大小排序,基於紅黑樹,如果集合元素是物件,必須實現Comparable介面。--執行緒不安全
-EnumSet:最快,列舉集合類,有序。 --執行緒不安全 
-queue 佇列
-PriorityQueue:按照元素大小排列,小的先出.
-Deque:雙端佇列。
Map
-HashMap   執行緒不安全,key不可重複,key允許一個為null,value可以多個
。不保證順序
-LinkedHashMap:雙向連結串列維護key的順序。
-Hashtable 執行緒安全,不允許null作為key和value。不保證順序
-Properties,讀寫檔案
                   -TreeMap 實現 SortedMap介面 紅黑樹結構,保證k-v處於有序狀態(自動排列),所有的key必須實現Comparable介面。判斷兩個key是否相等,通過compareTo()方法。                    -WeakHashMap:key都是弱引用。如果key沒有被其他強引用引用,則可能會被垃圾回收。                    -IdentityHashMap 與HashMap類似,但是key使用==判定的,identityHashMap.put("2", "2"); identityHashMap.put("2", "3"); 則key=“2”對應的value=“3”                    -EnumMap,所有的key必須是單個列舉類的列舉值