ConcurrentHashMap中的keySet(V mappedValue)究竟是如何工作的?

时间:2018-02-25 12:03:34

标签: java concurrenthashmap

这种方法是如何使用的?它是干什么用的?通常所有集合视图(包括keySet())都不允许添加和addAll方法 - 因为我无法添加没有相应值的任何键。抱歉,我不懂API以及如何使用此方法。谁能请一个明确的例子吗?这是否意味着如果我将myNewKey添加到这样的密钥集,然后(myNewKey,mappedValue)键值绑定被添加到相应的(原始)地图?

  

public ConcurrentHashMap.KeySetView keySet(V mappedValue)

     

使用给定的common返回此映射中的键的Set视图   任何添加的映射值(即Collection.add(E)和   Collection.addAll(集合))。这当然只适用于   可以接受为此所有添加使用相同的值   图。

1 个答案:

答案 0 :(得分:0)

  

通常所有集合视图(包括keySet())都不允许添加和添加所有方法 - 因为我无法添加没有相应值的任何键

这不是这种情况。向Map添加元素等同于添加与值mappedValue相关联的ConcurrentHashMap<String,String> map = new ConcurrentHashMap<>(); Set<String> keySet = map.keySet("sameValue"); keySet.add("key1"); keySet.add("key2"); 个新密钥。

  

如果我将myNewKey添加到这样的密钥集,那么(myNewKey,mappedValue)键值绑定是否被添加到相应的(原始)映射中?

那是对的。

Map

会产生与ConcurrentHashMap<String,String> map = new ConcurrentHashMap<>(); map.put("key1","sameValue"); map.put("key2","sameValue"); 相同的内容:

Parse()