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没有。
022020-05-03
相似问题