Java Map接口

在本教程中,我们将学习Java Map接口及其方法。

Java collections框架的Map接口提供了Map数据结构的功能。

它实现了Collection接口。

map的工作流程

在Java中,Map元素存储在键/值对中。 键是与各个值相关联的唯一值。

Map集合不能包含重复的键。并且,每个键都与一个值相关联。

Java中的map界面的工作

我们可以使用与它们关联的键来访问和修改值。

在上图中,我们有值:United States,Brazil,和Spain。我们都有相应的键:us,br和es。

现在,我们可以使用它们的对应键访问这些值。

注意:Map接口维护3个不同的集合:

  • 键集

  • 值集

  • 键/值关联(Map集合)的集合。

因此,我们可以分别访问键,值和关联。

实现Map的类

由于Map是接口,因此无法从中创建对象。

为了使用Map接口的功能,我们可以使用以下类:

这些类在集合框架中定义并实现Map接口。

HashMap,TreeMap,EnumMap,LinkedHashMap和WeakHashMap类实现Java Map接口。

继承Map的接口

Map接口也由以下这些子接口继承:

SortedMap,NavigableMap和ConcurrentMap继承了Java Map接口。

如何使用map?

在Java中,我们必须导入java.util.Map包才能使用Map。导入包后,将按照以下方法创建map。

//使用HashMap类创建MapMap<Key,Value>numbers=newHashMap<>();

在上面的代码中,我们创建了一个名为numbers的Map。我们已经使用HashMap类来实现Map接口。

这里,

  • Key - 用于关联map中每个元素(值)的唯一标识符

  • Value - map中按键关联的元素

map方法

Map接口包括Collection接口的所有方法。这是因为Collection是Map的超级接口。

除了Collection接口中可用的方法之外,Map接口还包括以下方法:

  • put(K,V) - 将键K和值V的关联插入到map中。如果键已经存在,则新值将替换旧值。

  • putAll() - 将指定Map集合中的所有条目插入此Map集合中。

  • putIfAbsent(K,V) - 如果键K尚未与value关联,则插入关联V。

  • get(K) - 返回与指定键K关联的值。如果找不到该键,则返回null。

  • getOrDefault(K,defaultValue) - 返回与指定键K关联的值。如果找不到键,则返回defaultValue。

  • containsKey(K) - 检查指定的键K是否在map中。

  • containsValue(V) - 检查指定的值V是否存在于map中。

  • replace(K,V) - 将键K的值替换为新的指定值V。

  • replace(K,oldValue,newValue) - 仅当键K与值oldValue相关联时,才用新值newValue替换键K的值。

  • remove(K) - 从键K表示的Map中删除条目。

  • remove(K,V) - 从Map集合中删除键K与值V相关联的条目。。

  • keySet() -返回Map集合中存在的所有键的集合。

  • values() -返回一组包含在Map集合中的所有值。

  • entrySet() -返回map中存在的所有键/值映射的集合。

map接口的实现

1.实现HashMap类

importjava.util.Map;importjava.util.HashMap;classMain{publicstaticvoidmain(String[]args){//使用HashMap类创建mapMap<String,Integer>numbers=newHashMap<>();//将元素插入map集合numbers.put("One",1);numbers.put("Two",2);System.out.println("Map:"+numbers);//map的键System.out.println("Keys:"+numbers.keySet());//map的值System.out.println("Values:"+numbers.values());//map的条目System.out.println("Entries:"+numbers.entrySet());//从map集合中删除元素intvalue=numbers.remove("Two");System.out.println("被删除的值是:"+value);}}

输出结果

Map:{One=1,Two=2}Keys:[One,Two]Values:[1,2]Entries:[One=1,Two=2]被删除的值是:2

要了解更多信息HashMap,请访问Java HashMap

2.实现TreeMap类

importjava.util.Map;importjava.util.TreeMap;classMain{publicstaticvoidmain(String[]args){//使用TreeMap创建mapMap<String,Integer>values=newTreeMap<>();//插入元素到mapvalues.put("Second",2);values.put("First",1);System.out.println("使用TreeMap创建map:"+values);//替换值values.replace("First",11);values.replace("Second",22);System.out.println("新的Map:"+values);//从map集合中删除元素intremovedValue=values.remove("First");System.out.println("被移除的值:"+removedValue);}}

输出结果

使用TreeMap创建map:{First=1,Second=2}新的Map:{First=11,Second=22}被移除的值:11

要了解更多信息TreeMap,请访问Java TreeMap

编辑于2024-05-20 15:22