Java集合–ConcurrentMap

较Map多了几个方法:

putIfAbsent:putIfAbsent方法中如果插入的key相同,则不替换原有的value值;

remove:如果要删除的key–value不能与Map中原有的key–value对应上,不会删除该元素;

replace(K,V,V):如果oldValue能与Map中原有的value对应上,才进行替换操作;

replace(K,V):此replace不会对Map进行比较,如果key存在则直接替换;

 

HASHMAP结构

需要锁住整个对象才能线程安全。

ConcurrentMap结构

仅需锁住Segment对象,就可以了。相同segment情况下才会加锁。