JDK学习--java.util.concurrent.ConcurrentMap输出及输入

新的 java.util.concurrent.ConcurrentMap 接口和 ConcurrentHashMap 实现只能在键不存在时将元素加入到 map 中,只有在键存在并映射到特定值时才能从 map 中删除一个元素。

ConcurrentMap中有一个新的 putIfAbsent() 方法用于在 map 中进行添加。这个方法以要添加到 ConcurrentMap 实现中的键和值为参数,就像普通的 put() 方法,但是只有在 map 不包含这个键时,才能将键加入到 map 中。如果 map 已经包含这个键,那么这个键的现有值就会返回。这个操作等于于清单9的代码:

if (!map.containsKey(key))

return map.put(key, value);

else

return map.get(key);



像 putIfAbsent() 方法一样,重载后的 remove() 方法有两个参数 —— 键和值。在调用时,只有当键映射到指定的值时才从 map 中删除这个键。如果不匹配,那么就不删除这个键,并返回 false。如果值匹配键的当前映射内容,那么就删除这个键。清单 10 显示了这种操作的等价源代码:



if (map.get(key).equals(value)) {

map.remove(key);

return true;

} else {

return false;

}

你可能感兴趣的:(java,jdk)