gpt4 book ai didi

java流通过终端操作改变数据

转载 作者:行者123 更新时间:2023-11-30 06:39:25 25 4
gpt4 key购买 nike

Java Stream Cheat Sheet

查看 Java Stream 的备忘单 - 我知道 Java 流不能改变数据。

例如,在下面使用的代码中,我说得对吗 - 使用 forEach 终端操作数据正在发生变化?

List<Foo> fooList=new ArrayList<>();
fooList.stream()
.filter(foo-> return foo.getSomeBoolean())
.forEach(foo->{
foo.setSomeBoolean(false);
});

我很困惑 forEach 终端操作会对数据产生副作用但不会改变数据?

有人可以解释一下如何允许 foreach 在这里改变数据吗?

最佳答案

您无法改变 fooList,但您可以使用终端操作对元素执行副作用。正如备忘单所述,流是管道,而不是数据结构。您无法更改非数据结构的内容,但您可以操纵流经管道的各个元素。

关于java流通过终端操作改变数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44643540/

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