映射表示包含的集合鍵值映射。
Map是一個集合,其中每個元素表示一個鍵值對作為<key,value> ;.<key,value> 對也稱為映射中的條目。鍵和值必須是引用類型。
映射由 Map<K,V>
接口的實例表示,它不是繼承自 Collection
接口。
映射不允許任何重復(fù)的鍵。每個鍵映射到正好一個值。值不必是唯一的。 兩個鍵可以映射到相同的值。
Map
允許最多一個空值鍵和多個空值作為其值。
Map接口中的方法可以根據(jù)其執(zhí)行的操作分為以下四類:
基本方法在Map上執(zhí)行基本操作,
本類別中的方法示例如下:
int size() boolean isEmpty() boolean containsKey (Object key) boolean containsValue (Object value) V get(Object key) V getOrDefault(Object key, V defaultValue) V put(K key, V value) V putIfAbsent(K key, V value) V remove (Object key) boolean remove(Object key, Object value) boolean replace(K key, V oldValue, V newValue)
映射批量操作在映射上執(zhí)行批量操作,例如將條目復(fù)制到另一個Map或從映射中刪除所有條目。
本類別中的方法示例如下:
void clear() void putAll (Map<? extends K, ? extends V> t) void replaceAll(BiFunction<? super K,? super V,? extends V> function)
視圖操作包含三種方法。我們可以從映射中查看以下集合。
本類別中的方法示例如下:
Set<K> keySet() Collection<V> values() Set<Map. Entry<K, V>>entrySet()
所有鍵和所有< key,value> 對在映射中始終是唯一的并作為設(shè)置視圖返回。
由于映射可能包含重復(fù)值,它返回一個 Collection
視圖的值。
比較操作方法處理比較兩個圖的相等性。本類別中的方法示例如下:
boolean equals (Object o) int hashCode()
HashMap
, LinkedHashMap
,和 WeakHashMap
是三個實現(xiàn)類用于 Map
界面。
HashMap
允許一個 null
值作為鍵和多個空值作為值。
以下代碼演示了如何創(chuàng)建和使用 Map
接口從它的實現(xiàn)類 HashMap
。HashMap不保證Map中條目的任何特定的迭代順序。
下面的代碼從HashMap創(chuàng)建一個Map
// Create a map using HashMap Map<String, String> map = new HashMap<>(); map.put("CSS", "style");
LinkedHashMap是Map接口的另一個實現(xiàn)類。 它使用雙向鏈表在Map中存儲條目,并保持迭代排序作為插入順序。
以下代碼演示了如何使用Map。
import java.util.HashMap; import java.util.Map; public class Main { public static void main(String[] args) { Map<String, String> map = new HashMap<>(); map.put("CSS", "style"); map.put("HTML", "mark up"); map.put("Oracle", "database"); map.put("XML", "data"); printDetails(map); map.clear(); printDetails(map); } public static void printDetails(Map<String, String> map) { String usage = map.get("CSS"); System.out.println("Map: " + map); System.out.println("Map Size: " + map.size()); System.out.println("Map is empty: " + map.isEmpty()); System.out.println("Map contains CSS key: " + map.containsKey("CSS")); System.out.println("Usage: " + usage); System.out.println("removed: " + map.remove("CSS")); } }
上面的代碼生成以下結(jié)果。
WeakHashMap
類是 Map
接口的另一種實現(xiàn)。
WeakHashMap
類包含弱鍵。當(dāng)除了在映射中沒有對鍵的引用時,鍵是垃圾回收的候選。
如果一個鍵被垃圾回收,它的相關(guān)條目從 WeakHashMap
中刪除。
WeakHashMap
允許一個空鍵和多個空值。
更多建議: