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