java computeIfAbsent
时间: 2023-12-05 09:36:01 浏览: 76
computeIfAbsent是Java 8中Map接口新增的一个方法,用于在Map中根据指定的键获取对应的值。如果该键不存在,则使用指定的函数计算出一个默认值并将其存储到Map中,最后返回该默认值。具体的语法如下:
V Map.computeIfAbsent(K key, Function<? super K, ? extends V> mappingFunction)
其中,key表示要获取值的键,mappingFunction表示计算默认值的函数。如果Map中已经存在指定的键,则直接返回该键对应的值;否则,使用mappingFunction计算出一个默认值,并将该键和默认值存储到Map中,最后返回该默认值。
在上面的示例中,首先创建了一个Map对象,并向其中添加了两个键值对。然后,使用computeIfAbsent方法获取了一个不存在的键"orange"对应的值,由于该键不存在,因此使用指定的函数k -> 0计算出了一个默认值0,并将该键和默认值存储到Map中,最后返回了该默认值。接着,使用computeIfAbsent方法获取了一个已经存在的键"apple"对应的值,由于该键已经存在,因此直接返回了该键对应的值1。
相关问题
java中computeIfAbsent
computeIfAbsent()是Java中的一个方法,它可以用于判断一个Map中是否存在指定的key,如果存在,则返回与该key关联的value值;如果不存在,则根据指定的key创建一个新的value值,并将其放入Map中。在上述代码中,computeIfAbsent()方法被用来判断HashMap中是否存在指定的key,如果存在,则向对应的value集合中添加元素,如果不存在,则创建一个新的HashSet并添加元素到集合中,然后将该集合放入HashMap中。
computeIfAbsent
computeIfAbsent 方法是 Java 8 中 Map 接口的一种新方法,它在 map 中查找与指定键关联的值。如果该键不存在,则将指定的值与该键关联,并返回该值。如果该键存在,则返回其关联值。
语法:
V computeIfAbsent(K key, Function<? super K, ? extends V> mappingFunction)
参数:
- key - 要在此映射中查找的键。
- mappingFunction - 如果需要,将调用其来计算值的函数。
返回值:
- 如果存在该键的关联值,则返回该值。
- 如果不存在该键的关联值,则使用指定的函数计算值并将其与该键关联,然后返回该值。
示例:
```
Map<String, Integer> map = new HashMap<>();
map.computeIfAbsent("a", key -> key.length());
```
上面这段代码中,如果map中不存在键"a",则使用给定的函数计算值,计算出来的值为1,并将键"a"和值1加入map。
阅读全文