我现在正在使用流学习Java8。
我收到了CustomDto列表。 CustomDto具有CustomDto1的列表。 CustomDto1具有CustomDto2的列表。
我需要这样的结果。
List<CustomDto> response = data from read;
response.stream()
.filter(x-> x.getCustomDto1List.stream()
.filter(y-> y.getCustomDto2List.stream()
.filter(z-> z.getCustomDto2.getSomeColumn.equals("XXX"))
)
)
有可能吗?如果是的话,如何获得此结果?
答案 0 :(得分:0)
是的,可以,但是您应该使用名为anyMatch();
的方法.filter(x-> x.getCustomDto1List.stream()
.anyMatch(y-> y.getCustomDto2List.stream()
.anyMatch(z-> z.getCustomDto2.getSomeColumn.equals("XXX"))
)
)
答案 1 :(得分:0)
似乎您正在尝试在嵌套列表中查找具有特定值的所有对象。像这样吗?
response.stream().filter(x -> x.getCustomDto1List.stream()
.flatMap(y-> y.getCustomDto2List.stream())
.anyMatch(z-> z.getSomeColumn.equals("XXX")))
.collect(toList());