HashMap高阶函数

278 阅读1分钟

HashMap高阶函数

Java1.8新增了关于map插入的几个方法,可以极大的减少if-else的使用,配合function使用提高开发效率。

putIfAbsent()

putIfAbsent() 方法会先判断指定的键(key)是否存在,不存在则将键/值对插入到 HashMap 中。

存放不存在的key时,返回值为null

默认的实现对该方法的同步或原子性质没有保证。提供原子性的保证任何的实现必须重写此方法和文件的并发性能。

map.putIfAbsent("key1","v1");

compute方法

当k存在时,put方法返回插入之前的value,compute返回插入之后的value

当k不存在时,put方法返回null。

map.compute("key1",(key,value) -> value+1);

putIfAbsent方法

只有当k不存在时才插入数据,k存在时不进行任何操作。

map.putIfAbsent("cc", "putIfAbsent")

computeIfAbsent方法

当k不存在时将计算的结果值插入Map,存在时不做处理。

map.computeIfAbsent("bb", k -> k + " :computeIfAbsent");  

computeIfPresent方法

map.computeIfAbsent("bb", k -> k + " :computeIfAbsent");  

\