Java8中带有流的嵌套列表
我有一个对象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
然后使用a,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);
以上是 Java8中带有流的嵌套列表 的全部内容, 来源链接: utcz.com/qa/416789.html