我有以下代码
final String arr[] = {"A", "B", "C", "D"};
final List<String> list1 = new ArrayList<>();
final List<String> list2 = Arrays.asList(arr).parallelStream()
.peek(s -> list1.add(s + s))
.map(s -> s + s)
.collect(Collectors.toList());
System.out.println(list1);
System.out.println(list2);
我得到以下结果:
[null, AA, DD, null]
[AA, BB, CC, DD]
为什么某些元素显示null在 list1 中?我知道我应该使用SynchronizedListwith parallelStream,但null值让我感到惊讶。一旦您向列表中添加了一些内容,就应该设置该插槽,并且下一次执行应该为其添加另一个值。
翻翻过去那场雪
相关分类