【发布时间】:2018-03-10 07:24:08
【问题描述】:
这是我的地图
HashMap<String, Set<String>> hmap = new HashMap<>();
我想从我的Map 中检索一个Set 并向其中添加一个元素。
Set<String> val = hmap.get(key);
val.add(newElement); //NPE
hmap.put(key, val);
但我在val.add 行得到NullPointerException
这可能是微不足道的,但我没有看到它..
我错过了什么?
【问题讨论】:
-
这意味着
hmap.get(key)返回null==> 这个键在你的地图中没有值 -
所以我需要用新的Set来初始化key?
-
如果密钥还没有设置,是的,您需要创建一个。这也是您需要执行
hmap.put的唯一情况。如果已经有一个集合,则不需要放回相同的集合。 -
是的,您需要有一个从
key到它的值的映射,这在您的情况下是一个集合。 -
@NickGinanto 我认为您是 Java 新手。因为
HashMap的get方法将返回null,如果你没有设置任何想法。所以首先你需要用new关键字初始化。