在Java 8 Map中,putIfAbsent和computeIfAbsent有什么区别?
阅读一篇有趣的文章,这些家伙声称这两个函数之间的区别是:
如果 Map 中尚不存在指定的 Key,则这两个函数都希望添加元素。
putIfAbsent 添加一个具有指定值的元素,而 computeIfAbsent 添加一个具有使用 Key 计算的值的元素。http://www.buggybread.com/2014/10/java-8-difference-between-map.html
和
我们已经看到 putIfAbsent 消除了必须定义 if 语句的命令性方式,但是如果获取 Java 文章真的损害了我们的性能呢?
为了优化这一点,我们不想获取文章,直到我们真正确定我们需要它们 - 这意味着我们需要在获取文章之前知道密钥是否不存在。http://www.deadcoderising.com/2017-02-14-java-8-declarative-ways-of-modifying-a-map-using-compute-merge-and-replace/
我还没有准备好了解有什么区别,你能详细阐述这两个功能吗?