您知道如何从 TopComplexity
对象检索所有 SimpleProperty
吗?
我需要将 for 循环 更改为 stream “kind”代码段。
@Data
public class TopComplexity {
List<SuperComplexProperty> superComplexProperties;
}
@Data
public class SuperComplexProperty {
List<SimpleProperty> simpleProperties;
ComplexProperty complexProperty;
}
@Data
public class ComplexProperty {
List<SimpleProperty> simpleProperties;
}
public class MainClass {
public static void main(String[] args) {
TopComplexity top = null;
List<SimpleProperty> result = new ArrayList<>();
for(SuperComplexProperty prop : top.getSuperComplexProperties) {
result.addAll(prop.getSimpleProperties());
if(Objects.nonNull(prop.getComplexProperty()) {
result.addAll(prop.getComplexProperty().getSimpleProperties());
}
}
}
}
非常感谢任何形式的帮助
最佳答案
您可以将 flatMap
与涉及 Stream
的串联和三元运算符混合使用,例如:
List<SimpleProperty> result = top.getSuperComplexProperties().stream()
.flatMap(scp -> Stream.concat(
scp.getSimpleProperties().stream(),
scp.getComplexProperty() == null ?
Stream.empty() :
scp.getComplexProperty().getSimpleProperties().stream()))
.collect(Collectors.toList());
关于java - 如何使用 Stream API 从对象中检索嵌套列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63189341/