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-hk/n/191161.html