putIfAbsent()

来源:9-15 组合操作的问题

深海的星星15138

2020-05-03

老师讲的putIfAbsent()方法是不是不太准确,这个方法只是1.8中加入的一个接口,HashMap中也有。它和put()方法都是调用的putVal(),只不过putIfAbsent()调用putVal()时传入的onlyIfAbsent标志位是true。因为插入一个键值对的时候总会遍历某个槽点上的链表或树去尝试寻找有没有相同的key,这个标志位只是说,如果找到了相同的key,是用新value覆盖原值还是什么都不做。所以不能把putIfAbsent()看成是组合操作吧。

写回答

1回答

深海的星星15138

提问者

2020-05-03

说错了,其实1.7中的ConcurrentHashMap中就已经加入这个接口了,1.7的HashMap没有。

0
2
深海的星星15138
回复
悟空
懂了,老师是从使用者的角度。
2020-05-03
共2条回复

深度解密Java并发工具,精通JUC,成为并发多面手

JUC全方位讲解,构建并发工具类知识体系

1599 学习 · 573 问题

查看课程