集合框架圖簡介
集合框架圖板塊簡介
Collection
Collection是一個介面,它的儲存形式以單一值儲存 ,list(表) 和 set(集合) 和Queue(佇列)實現了Collection介面。
list
list可以重複儲存 , 可以插入多個null值, 是一個有序容器,可以保持每個元素的插入順序。 它的實現類有 ArrayList(底層資料結構是陣列)
,LinkedList(底層資料結構是連結串列) 和Vector。 只需要訪問的話用ArrayList, 他的底層資料結構是陣列,可以通過下標來直接獲取元素;刪除或者新增元素時用LinkedList,它直接刪除某節點,不用對整體進行移動操作。
set
set:它不能重複儲存, 只允許插入一個null值, 是一個無序容器。 set介面的實現類有HashSet ,LinkedHashSet 和TreeSet。
Queue
Queue是佇列,涉及到優先順序佇列,大根堆和小根堆。
HashSet
HashSet基於HashMap實現,不能保證資料有序 ; (應用場景:資料去重,資料無重複儲存)
LinkedHashSet
LinkedHashSet 可以保證資料有序; (應用場景:資料去重,需按順序訪問的時候)
TreeSet
TreeSet底層封裝的是TreeMap,另外還實現了SortedSet介面,因此TreeSet是根據其compare()和compareTo()的定義進行排序的有序容器。(應用場景:資料去重,需要排序的情況下)
Iterator
Iterator是所有集合共有的迭代器(提供一種方法,來訪問集合(容器),對集合進行遍歷來達到對集合的便利訪問與集合底層資料結構進行解耦)。
LinkIterator
LinkIterator是list特有的迭代器,他可以實現雙向遍歷,他還提供了Set方法
Map
Map是一個介面,他的儲存方式是以Key-Value鍵值對形式儲存
Map介面的實現類有HashMap,LinkedHashMap,HashTable ,和TreeMap
HashMap
HashMap底層資料結構是陣列加連結串列 ,以key-value鍵值對儲存,key和value都可以為null, 它的執行緒不安全
LinkedHashMap
LinkedHashMap繼承HashMap ,和HashMap特點類似 ,但他是一個雙向連結串列,特殊的(boolean)accessOlder屬性使它可以實現插入有序和訪問有序,執行緒不安全
HashTable
HashTable繼承AbstractMap, key和value都不能為null, 執行緒安全(因為有關鍵字sychronized修飾 ), 可以通過Enumeration進行遍歷。
WeakHashMap
WeakHashMapMap的一個特殊實現(只要體現的是Java的四中引用:強引用,軟引用,弱引用,虛引用),他自定義了一個queue的屬性(用來儲存被GC回收的鍵值對),當他的外部不再被引用時,垃圾回收器會將他回收;
TreeMap
TreeMap基於紅黑樹。
紅黑樹特點:
1.每個節點都只能是紅色或黑色
2.根節點是黑色
3.每個葉節點是黑色的
4.如果一個節點是紅的,則他兩個子節點都是黑的。
也就是說在一條路徑上不能出現相鄰的兩個紅色節點。
5.從任一節點到每個葉子的所有路徑都包含相同數目的黑色節點。
identityHashmap
identityHashmap允許key值重複,但必須是兩個不同的物件。 (比較key的方法: identityHashMap應用 k1==k2 方法比較, 而不是像HashMap中的比較用k1.equals(k2)方法)
TreeSet
TreeSet通過Comparator或 Comparable 維護了一個排序順序。
Collections
Collections是集合類的一個工具類/幫助類,它包含各種有關集合操作的靜態多型方法,用於對集合中元素進行排序,搜尋以及執行緒安全的操作。
Arrays
Arrays提供一些方法來運算元組(Arrays.CopyOf)。