我的模型中有以下层次结构:
class Item {
String name;
...
List<SubItem> subItems;
}
class SubItem {
String name;
...
List<String> ids;
}
我想找一个
Item
及其
SubItem
哪里
subItem.ids
列表包含一些特定的id并返回
Pair
属于
Item.name
和
SubItem.name
。我假设所有名称和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
,但我需要还一些
顶层
字段(
姓名
)也是。