gpt4 book ai didi

Java 8 Stream 从返回值中添加新对象到列表

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

我想保存一个方法的返回值,并用它来创建一个新对象,用它添加到列表中。为了更清楚起见,这里是代码块:

final List<FooBoo> fooboos = new ArrayList<>();
for (Foo foo : foos) {
Optional<Boo> boo = generateBoo(foo);
if (boo.isPresent()) {
fooboos.add(new FooBoo(foo, boo.get()));
}
}

我试过这样的:

fooboos = foos
.stream()
.map(f -> generateBoo(f))
.filter(Optional::isPresent)
.map(Optional::get)
.collect(Collectors.toList());

但显然我在这里遗漏了一些实际上正在创建 FooBoo 对象的东西。我该如何使用 java 流方法做到这一点?

最佳答案

fooboos = foos
.stream()
.map(foo -> generateBoo(foo).map(boo -> new FooBoo(foo, boo))
.filter(Optional::isPresent)
.map(Optional::get)
.collect(Collectors.toList());

关于Java 8 Stream 从返回值中添加新对象到列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36485469/

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