在本教程中,我们将学习 Java Map接口及其方法。
Java 集合框架的Map接口提供了映射数据结构的功能。
它实现了Collection接口。
映射的工作原理
在 Java 中,Map的元素存储在键/值对中。 键是与各个值相关联的唯一值。
映射不能包含重复的键。 并且,每个键都与一个值相关联。

我们可以使用与它们关联的键来访问和修改值。
在上图中,我们具有以下值:Amarica,Brazil和Spain。 并且我们有相应的键:us,br和es。
现在,我们可以使用它们的对应键访问这些值。
注意: Map接口维护 3 个不同的集合:
- 键集
- 值集
- 键/值关联(映射)集。
因此,我们可以分别访问键,值和关联。
实现Map的类
由于Map是一个接口,因此我们无法从中创建对象。
为了使用Map接口的功能,我们可以使用以下类:
这些类在集合框架中定义,并实现Map接口。

扩展Map的接口
Map接口还通过以下子接口扩展:

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