java中map的computeIfAbsent()函数

  • Post author:
  • Post category:java


一、HashMap computeIfAbsent(Key, Function) 的这个方法,是被用来计算给定key,给定映射函数的的值。

如果,key之前并没有映射到一个值,或者映射到null,那么,就用计算出来的值放到这个hashmap中。

如果这个映射函数返回null,那么不添加任何k-v对

如果在计算过程中,抛出异常,那么不添加任何k-v对

在计算过程中,无法修改此map

方法会抛出ConcurrentModificationException ,如果在计算过程中,修改此map

二、

java8之前。从map中根据key获取value操作可能会有下面的操作

Object key = map.get(“key”);

if (key == null) {


key = new Object();

map.put(“key”, key);

}

java8之后。上面的操作可以简化为一行,若key对应的value为空,会将第二个参数的返回值存入并返回

Object key2 = map.computeIfAbsent(“key”, k -> new Object());



版权声明:本文为weixin_39408343原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。