0
我正在使用Java8,发现收集器失败时,我在hashmap中使用null。Java 8映射失败为空值
我得到空指针异常。我的查询是如果哈希映射允许空值,那么为什么我在这里得到空指针。
public class Test {
public static void main(String[] args) {
HashMap<String, String> m = new HashMap<>();
m.put("abc", null);
m.entrySet().parallelStream().collect(Collectors.toMap(e -> e.getKey(), e -> e.getValue()));
}
}
'toMap'的这种行为应该可能在Javadoc中得到澄清。在JBS中有一个开放的bug:https://bugs.openjdk.java.net/browse/JDK-8148463 –
正如一个附注,不要盲目地使用'parallelStream()'。对于小集合和/或简单任务,它将比顺序流慢得多。并且将单个元素地图收集到另一个地图中是这样的任务,其中并行处理没有意义... – Holger