gpt4 book ai didi

java - Java8 中带有流的嵌套列表

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:51:53 31 4
gpt4 key购买 nike

我有一个对象 A 列表。此列表中的每个对象 A 都包含对象 B 的列表,对象 B 包含对象 C 的列表。对象 C 包含一个属性名称,我想使用它来使用 java 8 进行过滤。

如何使用流在 Java 8 中编写以下代码以避免嵌套循环:

C c1 = null;
String name = "name1"
for (A a: listOfAObjects) {
for (B b: a.getList()) {
for (C c: b.getPr()) {
if (c.getName().equalsIgnoreCase(name)) {
c1= c;
break;
}
}
}
}

最佳答案

你可以使用两个 flatMap 然后一个 filter 然后你可以选择第一个或者如果没有结果返回 null :

C c1 = listOfAObjects.stream()
.flatMap(a -> a.getList().stream())
.flatMap(b -> b.getPr().stream())
.filter(c -> c.getName().equalsIgnoreCase(name))
.findFirst()
.orElse(null);

关于java - Java8 中带有流的嵌套列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51630352/

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