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

回到顶部