📅  最后修改于: 2023-12-03 14:42:18.577000             🧑  作者: Mango
在Java中,我们可以通过使用Map
接口来创建一个键值对的映射表。在这个映射表中,我们可以将一个键与它对应的值关联起来。Java提供了很多不同的实现Map
接口的类,其中最常用的是HashMap
,TreeMap
和LinkedHashMap
。在Java中,我们可以通过以下方法将元素添加到地图中:
put()
方法用于将一个键值对添加到地图中。如果地图中已经存在该键,那么它对应的值将被替换成新的值。另外,该方法还可以返回替换前这个键对应的旧值(如果存在的话)。以下是put()方法的语法:
V put(K key, V value)
其中,K
代表地图的键类型,V
代表地图的值类型。下面的代码展示了如何使用put()方法将元素添加到地图中:
Map<String, Integer> map = new HashMap<>();
map.put("One", 1);
map.put("Two", 2);
map.put("Three", 3);
System.out.println(map);
输出如下:
{One=1, Two=2, Three=3}
putIfAbsent()
方法将一个键值对添加到地图中,但只有在该键在地图中不存在的情况下才会添加。该方法返回添加的值或者已经存在的值(如果已经存在的话)。以下是putIfAbsent()方法的语法:
V putIfAbsent(K key, V value)
下面的代码展示了如何使用putIfAbsent()方法将元素添加到地图中:
Map<String, Integer> map = new HashMap<>();
map.putIfAbsent("One", 1);
map.putIfAbsent("Two", 2);
map.putIfAbsent("Three", 3);
System.out.println(map);
输出如下:
{One=1, Two=2, Three=3}
由于所有的键在添加时都已经存在,所以并没有添加新的元素。如果我们替换其中一个putIfAbsent()方法为以下内容:
map.putIfAbsent("Four", 4);
输出如下:
{One=1, Two=2, Three=3, Four=4}
computeIfAbsent()
方法用于根据指定的键计算一个值,并将其与该键相关联。如果该键在地图中已经存在,则返回与该键相关联的值。合成函数只有在key key不存在时才执行,以确保地图保留函数原子性。以下是computeIfAbsent()方法的语法:
V computeIfAbsent(K key,Function<? super K,? extends V> mappingFunction)
下面的代码展示了如何使用computeIfAbsent()方法将元素添加到地图中:
Map<String, Integer> map = new HashMap<>();
map.computeIfAbsent("One", k -> 1);
map.computeIfAbsent("Two", k -> 2);
map.computeIfAbsent("Three", k -> 3);
map.computeIfAbsent("Four", k -> 4);
System.out.println(map);
输出如下:
{One=1, Two=2, Three=3, Four=4}
merge()
方法用于将地图中指定键的值与指定的值进行合并。如果该键在地图中不存在,则将指定的值与该键相关联。如果该键在地图中已经存在,则使用提供的合并函数进行合并。以下是merge()方法的语法:
V merge(K key,V value,BiFunction<? super V,? super V,? extends V> remappingFunction)
下面的代码展示了如何使用merge()方法将元素添加到地图中:
Map<String, Integer> map = new HashMap<>();
map.merge("One", 1, (k, v) -> k + v);
map.merge("Two", 2, (k, v) -> k + v);
map.merge("Three", 3, (k, v) -> k + v);
System.out.println(map);
输出如下:
{One=1, Two=2, Three=3}
这些都是Java中将元素添加到地图中的几种方法。每种方法都有自己的优点和缺点,选择哪种取决于你的具体需求。希望这篇文章能够帮助您更好地了解和使用地图。