[英]How exactly keySet(V mappedValue) in ConcurrentHashMap works?
如何使用此方法? 這有什么用途? 通常,所有集合視圖(包括keySet())都不允許使用add和addAll方法-因為我不能在沒有相應值的情況下添加任何鍵。 抱歉,但我不了解API以及如何使用此方法。 有人可以舉一個清晰的例子嗎? 這是否意味着如果我將myNewKey添加到這樣的鍵集,那么(myNewKey,mapdValue)鍵值綁定將添加到相應的(原始)映射中?
公共ConcurrentHashMap.KeySetView keySet(VappedValue)
使用給定的公共映射值(對於任何添加項,即Collection.add(E)和Collection.addAll(Collection)),返回此映射中的鍵的Set視圖。 當然,僅當從該視圖對所有添加使用相同的值是可接受的時,這才是適當的。
通常,所有集合視圖(包括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");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.