Map 是 Java 集合框架中常用的一種數據結構,它提供了鍵值對的存儲方式,可以通過鍵快速查找對應的值。Java 中提供了多種不同的 Map 實現,包括 HashMap、TreeMap、LinkedHashMap 等。
一、HashMap
HashMap 是 Java 集合框架中最常用的 Map 實現之一。它基於哈希表實現,允許 null 鍵和 null 值,不保證鍵值對的順序。
HashMap 的基本操作包括 put、get、remove,示例如下:
// 創建一個空的 HashMap
Map map = new HashMap();
// 向 HashMap 中添加鍵值對
map.put("key1", "value1");
map.put("key2", "value2");
// 從 HashMap 中獲取值
String value1 = map.get("key1");
// 從 HashMap 中刪除鍵值對
map.remove("key2");
除了基本操作外,HashMap 還提供了一些常用的方法,如 keySet、values、entrySet,可以分別獲取鍵的集合、值的集合、鍵值對的集合。
// 遍歷 HashMap 的方式之一:使用 keySet 方法獲取鍵的集合,並依次獲取值
for (String key : map.keySet()) {
String value = map.get(key);
System.out.println(key + ": " + value);
}
// 遍歷 HashMap 的方式之二:使用 values 方法獲取值的集合
for (String value : map.values()) {
System.out.println(value);
}
// 遍歷 HashMap 的方式之三:使用 entrySet 方法獲取鍵值對的集合
for (Map.Entry entry : map.entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
System.out.println(key + ": " + value);
}
二、TreeMap
TreeMap 是基於紅黑樹實現的 Map,它保證鍵值對按照鍵的自然順序排序,或者按照指定的 Comparator 排序。TreeMap 不允許 null 鍵,但允許 null 值。
TreeMap 的使用方法和 HashMap 類似,示例如下:
// 創建一個空的 TreeMap
Map map = new TreeMap();
// 向 TreeMap 中添加鍵值對
map.put("key1", "value1");
map.put("key3", "value3");
map.put("key2", "value2");
// 遍歷 TreeMap 的方式和遍歷 HashMap 相同
for (String key : map.keySet()) {
String value = map.get(key);
System.out.println(key + ": " + value);
}
三、LinkedHashMap
LinkedHashMap 是基於哈希表和鏈表實現的 Map,它保留插入順序,可以按照插入順序遍歷鍵值對,或者按照訪問順序(LRU)遍歷鍵值對。LinkedHashMap 允許 null 鍵和 null 值。
LinkedHashMap 的基本操作和 HashMap 類似,只不過它保留插入順序。示例如下:
// 創建一個空的 LinkedHashMap,指定迭代順序為插入順序
Map map = new LinkedHashMap(16, 0.75f, true);
// 向 LinkedHashMap 中添加鍵值對
map.put("key1", "value1");
map.put("key3", "value3");
map.put("key2", "value2");
// 通過訪問順序遍歷 LinkedHashMap
map.get("key1");
map.get("key2");
for (Map.Entry entry : map.entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
System.out.println(key + ": " + value);
}
四、總結
通過本文的介紹,我們了解了 Java 集合框架中 Map 的常用實現及其基本操作。在實際開發中,我們需要根據實際需求選擇合適的 Map 實現。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/191161.html
微信掃一掃
支付寶掃一掃