[英]Java Set<String> in a HashMap
我有這個對象:
Map<Long, Set<String>> resourcesByID = new HashMap<Long, Set<String>>();
另一個:
Set<String> resources;
當我想將更多Set放入HashMap中時,它將覆蓋我之前放入的Set的元素。 為什么? 我該如何解決這個問題?
假設
Long id = 1234L;
Set<String> resources = ...;
如果要添加另一個從Long
到Set
映射,則
resourcesById.put(id, resources);
如果要將String
添加到現有映射
resourcesById.get(id).addAll(resources);
如果您未正確進行初始化,則可以簡化工作...
if (!resourcesById.containsKey(id)) {
resourcesById.put(id, new HashSet<String>());
}
resourcesById.get(id).addAll(resources);
如果key
匹配,它將覆蓋以前的值,否則將不覆蓋。
(要么)
正如Thomas所言,如果您的集合是變異的,並且您要更新同一集合,是的,那么它可能會被覆蓋。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.