我正在使用这样的HashMap,
HashMap<String,Set<String>> map = new HashMap<String,Set<String>>();
我在map
,
key
是否存在,我可以使用map.containsKey()
来获取它。Set
大小。size <= 1
我希望在该集合中添加元素。答案 0 :(得分:3)
听起来像这样:
HashMap<String,Set<String>> map = new HashMap<String,Set<String>>();
Set<String> value = map.get("key");
if(value != null) {
if(value.size() <= 1) {
value.add("some value");
}
} else {
map.put("key", new HashSet<String>());
}
现在,要么最后一点措辞不好(即你想要更新与密钥相关的Set),要么你真的想更新密钥本身,在这种情况下你可能只需删除它并添加一个新条目。
答案 1 :(得分:3)
我不会使用containsKey并获取,因为这意味着只需要一次查找。
private final Map<String,Set<String>> map = new HashMap<String,Set<String>>();
Set<String> set = map.get(key);
if(set != null && set.size() <= 1)
set.add(some$value);
唯一的问题是该值始终为null
,除非您将其设置在某处,因此您可能想要的是
private final Map<String,Set<String>> map = new HashMap<String,Set<String>>();
Set<String> set = map.get(key);
if(value != null)
map.put(key, set = new HashSet<String>());
if (set.size() <= 1)
set.add(some$value);
最大尺寸为2的套装是不寻常的。这有什么理由吗?
答案 2 :(得分:1)
您可以使用map.get(String key)从地图中获取该集。
然后测试Set的大小。如果需要,请添加您的元素。
现在您只需使用map.remove(String key)从地图中删除旧集合,然后使用put(String,Set)重新插入;