Map是由Key-Value所組成的
而Key的部分不能重複,因為是Set
- HashMap:
- LinkedHashMap:
- 保持項目插入的順序
- 使用哈希表和鏈表實現有序遍歷
- 提供類似
HashMap
的性能,但稍微慢一些,因為需要維護順序 - 允許鍵和值為空( 空字串、null)
- 非線程安全
- TreeMap:
- 根據鍵的自然順序或自定義
Comparator
進行排序 - 使用紅黑樹結構維護項目
- 基本操作(獲取、插入、刪除)具有對數時間複雜度
- 提供有序遍歷
- 不允許鍵為空,但允許值為空 (因為要以鍵做排序)
- 非線程安全
- 根據鍵的自然順序或自定義
- ConcurrentHashMap:
簡單來講,併發就是多個執行緒在同個時間內不斷切換、互相搶資源地在處理任務。是在瞬間、極短的時間內!
- Hashtable:
- WeakHashMap (我完全沒用到過):
- 允許鍵在不再有強引用時被垃圾回收
- 適用於動態創建鍵並在內存壓力下釋放的情況
- 提供類似
HashMap
的功能,但具有弱鍵 - 非線程安全