computeIfPresent
时间: 2023-12-05 20:37:20 浏览: 15
`computeIfPresent` 是 Java 8 中 Map 接口新增的一个方法,用于在 key 存在的情况下,根据旧值计算新值并替换原来的值。具体用法如下:
```java
Map<String, Integer> map = new HashMap<>();
map.put("apple", 1);
map.computeIfPresent("apple", (k, v) -> v + 1);
System.out.println(map.get("apple")); // 输出 2
```
在上面的例子中,我们先将键值对 "apple" -> 1 存入 map 中,然后使用 `computeIfPresent` 方法对 "apple" 对应的值进行更新,更新规则为将原来的值加 1。最后输出 "apple" 对应的值,结果为 2。
相关问题
java hashmap computeIfPresent
`computeIfPresent` 是 Java 中 HashMap 的一个方法,用于根据指定的键和计算函数来更新映射表中的值。如果指定的键不存在,则不会做任何操作。如果指定的键存在,则会将计算函数应用于该键的当前映射值,并将结果存入映射表中。
下面是 `computeIfPresent` 方法的语法:
```java
public V computeIfPresent(K key, BiFunction<? super K,? super V,? extends V> remappingFunction)
```
其中,`key` 表示要更新映射表中的键,`remappingFunction` 是一个计算函数,它接受两个参数,即键和当前映射值,并返回一个新的映射值。
使用示例:
```java
Map<String, Integer> map = new HashMap<>();
map.put("apple", 1);
map.put("banana", 2);
map.put("orange", 3);
map.computeIfPresent("apple", (k, v) -> v + 1);
System.out.println(map); // 输出:{orange=3, apple=2, banana=2}
```
在上面的例子中,我们先向 map 中添加了三个键值对,然后使用 `computeIfPresent` 方法对键为 "apple" 的键值对进行更新,计算函数将当前值加 1。最后输出更新后的 map,可以看到 "apple" 对应的值已经从 1 更新为 2。
map.computeifpresent()
map.computeIfPresent() 是 Java 8 中的一个方法,用于在 Map 中更新指定键对应的值。它接受三个参数:键、BiFunction 和一个可选的默认值。如果指定键存在于 Map 中,则使用 BiFunction 计算新值并更新该键对应的值;如果指定键不存在于 Map 中,则不执行任何操作。如果提供了默认值,则当指定键不存在于 Map 中时,使用默认值作为计算的初始值。