Map
接口的 Java collections framework 提供了 map 数据结构的功能。
Map 的工作原理
在 Java 中,Map
的元素以键/值对的形式存储。键是与单个值关联的唯一值。
Map 不能包含重复键。并且,每个键都与单个值相关联。

我们可以使用与之关联的键来访问和修改值。
在上图中,我们有值:United States、Brazil 和 Spain。我们还有对应的键:us、br 和 es。
现在,我们可以使用它们各自的键来访问这些值。
注意:Map
接口维护 3 个不同的集合
- 键的集合
- 值的集合
- 键/值关联(映射)的集合。
因此,我们可以单独访问键、值和关联。
实现 Map 的类
为了使用 Map
接口的功能,我们可以使用这些类
这些类定义在 collections framework 中,并在 Map
接口中实现。

扩展 Map 的接口
Map
接口还由这些子接口扩展

如何使用 Map?
在 Java 中,我们必须导入 java.util.Map
包才能使用 Map
。导入包后,我们可以这样创建 map。
// Map implementation using HashMap
Map<Key, Value> numbers = new HashMap<>();
在上面的代码中,我们创建了一个名为 numbers 的 Map
。我们使用 HashMap
类来实现 Map
接口。
这里,
- Key - 用于将 map 中的每个元素(值)关联起来的唯一标识符
- Value - 由键在 map 中关联的元素
Map 的方法
Map
接口包含以下方法
put(K, V)
- 将键 K 和值 V 的关联插入到 map 中。如果键已存在,新值将替换旧值。putAll()
- 将指定 map 中的所有条目插入到此 map 中。putIfAbsent(K, V)
- 如果键 K 尚未与值 V 关联,则插入关联。get(K)
- 返回与指定键 K 关联的值。如果找不到键,则返回null
。getOrDefault(K, defaultValue)
- 返回与指定键 K 关联的值。如果找不到键,则返回 defaultValue。containsKey(K)
- 检查 map 中是否存在指定的键 K。containsValue(V)
- 检查 map 中是否存在指定的值 V。replace(K, V)
- 将键 K 的值替换为新的指定值 V。replace(K, oldValue, newValue)
- 仅当键 K 与值 oldValue 关联时,才将键 K 的值替换为新值 newValue。remove(K)
- 从 map 中移除由键 K 表示的条目。remove(K, V)
- 从 map 中移除键为 K 且值为 V 的条目。keySet()
- 返回 map 中所有键的集合。values()
- 返回 map 中所有值的集合。entrySet()
- 返回 map 中所有键/值映射的集合。
Map 接口的实现
1. 实现 HashMap 类
import java.util.Map;
import java.util.HashMap;
class Main {
public static void main(String[] args) {
// Creating a map using the HashMap
Map<String, Integer> numbers = new HashMap<>();
// Insert elements to the map
numbers.put("One", 1);
numbers.put("Two", 2);
System.out.println("Map: " + numbers);
// Access keys of the map
System.out.println("Keys: " + numbers.keySet());
// Access values of the map
System.out.println("Values: " + numbers.values());
// Access entries of the map
System.out.println("Entries: " + numbers.entrySet());
// Remove Elements from the map
int value = numbers.remove("Two");
System.out.println("Removed Value: " + value);
}
}
输出
Map: {One=1, Two=2} Keys: [One, Two] Values: [1, 2] Entries: [One=1, Two=2] Removed Value: 2
要了解更多关于 HashMap
的信息,请访问 Java HashMap。
2. 实现 TreeMap 类
import java.util.Map;
import java.util.TreeMap;
class Main {
public static void main(String[] args) {
// Creating Map using TreeMap
Map<String, Integer> values = new TreeMap<>();
// Insert elements to map
values.put("Second", 2);
values.put("First", 1);
System.out.println("Map using TreeMap: " + values);
// Replacing the values
values.replace("First", 11);
values.replace("Second", 22);
System.out.println("New Map: " + values);
// Remove elements from the map
int removedValue = values.remove("First");
System.out.println("Removed Value: " + removedValue);
}
}
输出
Map using TreeMap: {First=1, Second=2} New Map: {First=11, Second=22} Removed Value: 11