gpt4 book ai didi

java - 如何使用Stream API从对象中检索嵌套列表?

转载 作者:行者123 更新时间:2023-12-04 09:16:31 25 4
gpt4 key购买 nike

你知道如何检索所有SimpleProperty吗?来自 TopComplexity目的?
我需要改变那个 for 循环 进入 “亲切”的一段代码。

@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/

25 4 0