我想为ConcurrentHashmap增加一个计数器,但是其他线程可以随时删除该密钥。所以我在增加计数器之前检查密钥是否仍然存在。
我有以下代码:
if(this.myMap.containsKey(key))
{
this.myMap.put(key, this.myMap.get(key) + 1);
}
myMap的创建方式如下:
private Map<String, Integer> myMap = new ConcurrentHashMap<String, Integer>();
但是我不时会在增加整数的行中得到一个NullPointer异常。 这种情况并不经常发生(可能是10万次运行中的1次)。
还有另一种方法来增加柜台吗?或者我甚至需要一个HashMap?