【Java 集合】集合框架之 Map

先看來下 Map 大家族:

話外音:圖中關係是 UML 類圖表示。

實線箭頭表示,繼承,從一個非接口類繼承。

虛線箭頭表示,實現實現一個接口。

1.HashMap(數組+鏈表+紅黑樹)

HashMap 根據鍵的 hashCode 值存儲數據,大多數情況下可以直接定位它的值,因而具有很快的訪問速度,但遍歷順序確實不確定的。

HashMap 最多隻允許一條記錄的鍵爲 null,允許多條記錄的值爲 null。

HashMap 非線程安全,即任任一時刻可以有多個線程同時寫 HashMap,可能會導致數據的不一致。

如果需要滿足線程安全,可以用 Collections 的 synchronizedMap 方法使 HashMap 具有線程安全的能力,或者使用 ConcurrentHashMap。

我們用下面用下面這張圖來介紹 HashMap 的結構。

1.Java 7 實現

Java 7 HashMap 結構

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