映射表示包含的集合键值映射。
Map是一个集合,其中每个元素表示一个键值对作为<key,value> ;.<key,value> 对也称为映射中的条目。键和值必须是引用类型。
映射由 Map<K,V> 接口的实例表示,它不是继承自 Collection 接口。
映射不允许任何重复的键。每个键映射到正好一个值。值不必是唯一的。 两个键可以映射到相同的值。
Map 允许最多一个空值键和多个空值作为其值。
Map接口中的方法可以根据其执行的操作分为以下四类:
基本方法在Map上执行基本操作,
本类别中的方法示例如下:
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)
映射批量操作在映射上执行批量操作,例如将条目复制到另一个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> 对在映射中始终是唯一的并作为设置视图返回。
由于映射可能包含重复值,它返回一个 Collection 视图的值。
比较操作方法处理比较两个图的相等性。本类别中的方法示例如下:
boolean equals (Object o)
int hashCode()
HashMap , LinkedHashMap ,和 WeakHashMap 是三个实现类用于 Map 界面。
HashMap 允许一个 null 值作为键和多个空值作为值。
以下代码演示了如何创建和使用 Map 接口从它的实现类 HashMap 。HashMap不保证Map中条目的任何特定的迭代顺序。
下面的代码从HashMap创建一个Map
// Create a map using HashMap
Map<String, String> map = new HashMap<>();
map.put("CSS", "style");
LinkedHashMap是Map接口的另一个实现类。 它使用双向链表在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"));
}
}
上面的代码生成以下结果。

WeakHashMap 类是 Map 接口的另一种实现。
WeakHashMap 类包含弱键。当除了在映射中没有对键的引用时,键是垃圾回收的候选。
如果一个键被垃圾回收,它的相关条目从 WeakHashMap 中删除。
WeakHashMap 允许一个空键和多个空值。
© 著作权归作者所有