Java流过滤器嵌套对象返回顶级字段
我的模型中有以下层次结构:Java流过滤器嵌套对象返回顶级字段,java,java-stream,Java,Java Stream,我的模型中有以下层次结构: class Item { String name; ... List<SubItem> subItems; } class SubItem { String name; ... List<String> ids; } 我想知道使用Java8是否可以达到同样的效果 我找到了这个答案,但我还需要返回一些顶级字段(名称) 您可以使用flatMap: return items.stream()
class Item {
String name;
...
List<SubItem> subItems;
}
class SubItem {
String name;
...
List<String> ids;
}
我想知道使用Java8是否可以达到同样的效果
我找到了这个答案,但我还需要返回一些顶级字段(名称) 您可以使用
flatMap
:
return items.stream()
.flatMap(i -> i.getSubItems()
.stream()
.filter(si -> si.ids.contains("some value"))
.map(si -> new Pair<String, String>(i.name, si.name)))
.findFirst()
.orElse(null);
returnitems.stream()
.flatMap(i->i.getSubItems()
.stream()
.filter(si->si.ids.contains(“一些值”))
.map(si->新对(i.name,si.name)))
.findFirst()
.orElse(空);
return items.stream()
.flatMap(i -> i.getSubItems()
.stream()
.filter(si -> si.ids.contains("some value"))
.map(si -> new Pair<String, String>(i.name, si.name)))
.findFirst()
.orElse(null);