【发布时间】:2020-06-01 12:30:21
【问题描述】:
我的模型中有以下层次结构:
class Item {
String name;
...
List<SubItem> subItems;
}
class SubItem {
String name;
...
List<String> ids;
}
我想找到一个Item 及其SubItem,其中subItem.ids 列表包含一些特定的ID,并返回Item.name 和SubItem.name 的Pair。我假设所有名称和 ID 都是唯一的,所以我只对第一个结果感兴趣。
我可以使用两个 foreach 循环来做到这一点:
for (Item item : items) {
for (SubItem subItem : item.subItems) {
if (subItem.ids.contains("some value")) {
return Pair<String, String>(item.name, subItem.name)
}
}
}
我想知道是否可以使用 Java 8 Streams 获得相同的结果?
我找到了这个答案How to filter nested objects with Stream,但我还需要返回一些顶级 字段(names)。
【问题讨论】:
标签: java java-stream