首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Java 集合框架 Map 接口詳解:常用方法、HashTable、HashMap、TreeMap、Properties 區別

     編輯:Java 綜合教學

Map 接口核心方法與主要實現類對比

Map 存儲鍵值對,與 Collection 存儲單個元素形成「雙列」與「單列」集合體系。

一、常用方法

類別方法說明
添加V put(K, V)返回舊值,無則 null
putAll(Map)批量添加
刪除V remove(K)返回被刪除的值
void clear()清空
判斷boolean containsKey(K)
boolean containsValue(V)
boolean isEmpty()
獲取V get(K)無鍵返回 null
int size()鍵值對數量
視圖Set<K> keySet()、Collection<V> values()、Set<Entry<K,V>> entrySet()三種遍歷入口

二、主要實現類對比

實現類底層結構線程安全允許 Null Key允許 Null Value有序性典型場景
Hashtable哈希表✓ (synchronized)✗✗無序舊代碼兼容,極少用
Properties繼承 Hashtable✓✗ (String)✗ (String)無序配置文件加載 (.properties)
HashMap哈希表 (JDK8+ 紅黑樹優化)✗✓✓無序高性能通用 Map
TreeMap紅黑樹✗✗✓Key 自然序/自定義 Comparator 排序需要有序遍歷
LinkedHashMap哈希表 + 雙向鏈表✗✓✓插入序/訪問序LRU 緩存、保持插入順序
ConcurrentHashMap分段鎖/CAS (JDK8+)✓ (高並發)✗✗無序多線程環境高性能 Map

三、選型建議

  • 單線程、高性能、無序:HashMap。
  • 需要 Key 有序:TreeMap。
  • 需要保持插入順序:LinkedHashMap。
  • 多線程寫多:ConcurrentHashMap。
  • 讀取配置文件:Properties (配合 load(InputStream))。

避免在高併發下直接使用 HashMap(可能導致死循環),亦避免使用 Hashtable(性能差,已被 ConcurrentHashMap 取代)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved