ConcurrentHashMap支持以下原子操作:
- putIfAbsent(K key, V value):如果指定的键还未映射到任何值,则将指定的值与指定的键关联。
- replace(K key, V oldValue, V newValue):如果指定的键目前映射到指定的值,则替换该键对应的值。
- remove(Object key, Object value):如果指定的键目前映射到指定的值,则删除该键对应的映射。
- compute(K key, BiFunction<? super K,? super V,? extends V> remappingFunction):计算指定键的映射值,并将新的映射值与该键关联。
- merge(K key, V value, BiFunction<? super V,? super V,? extends V> remappingFunction):将指定键的值与给定值按照指定的合并函数进行组合。
这些方法可以确保并发环境下的线程安全性,避免出现数据不一致或其他并发问题。