如何使用此方法?这有什么用途?通常,所有集合视图(包括keySet())都不允许使用add和addAll方法-因为我不能在没有相应值的情况下添加任何键。抱歉,但我不了解API和如何使用此方法。有人可以举一个明确的例子吗?这是否意味着如果我将myNewKey添加到这样的键集,然后将(myNewKey,mapdValue)键值绑定添加到相应的(原始)映射?


  公共ConcurrentHashMap.KeySetView keySet(VappedValue)
  
  使用给定的common返回此映射中的键的Set视图
  任何添加项的映射值(即Collection.add(E)和
  Collection.addAll(Collection))。当然,这仅在以下情况下才适用
  对此所有添加使用相同的值是可以接受的
  视图。

最佳答案

通常,所有集合视图(包括keySet())都不允许使用add和addAll方法-因为我不能在没有相应值的情况下添加任何键


这里不是这种情况。将元素添加到keySet(V mappedValue)等效于放入与值Map关联的mappedValue新键。


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


没错

ConcurrentHashMap<String,String> map = new ConcurrentHashMap<>();
Set<String> keySet = map.keySet("sameValue");
keySet.add("key1");
keySet.add("key2");


将导致与Map相同的结果:

ConcurrentHashMap<String,String> map = new ConcurrentHashMap<>();
map.put("key1","sameValue");
map.put("key2","sameValue");

10-06 10:54