gpt4 book ai didi

java - 我应该在 Java 8 Streams 中使用共享可变变量更新吗

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:21:56 25 4
gpt4 key购买 nike

只需在列表下方迭代并通过 Java 8 流添加到另一个共享可变列表中。

List<String> list1 = Arrays.asList("A1","A2","A3","A4","A5","A6","A7","A8","B1","B2","B3");
List<String> list2 = new ArrayList<>();

Consumer<String> c = t -> list2.add(t.startsWith("A") ? t : "EMPTY");

list1.stream().forEach(c);
list1.parallelStream().forEach(c);
list1.forEach(c);

以上三个迭代之间有什么区别以及我们需要使用哪一个。有什么注意事项吗?

最佳答案

无论您使用并行还是顺序 Stream,当您的目标是生成一个 List 时,您都不应该使用 forEach。将 mapcollect 一起使用:

List<String> list2 = 
list2.stream()
.map(item -> item.startsWith("A") ? item : "EMPTY")
.collect(Collectors.toList());

关于java - 我应该在 Java 8 Streams 中使用共享可变变量更新吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52439079/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com