这个问题在这里已经有答案了:
java8中带有流的嵌套列表(4个答案)
如何在Java8中将列表列表转换为列表(11个答案)
java流:flatmap返回对象流(2个答案)
两小时前关门了。
我正在处理我的项目,然后我需要json数据中的reach-an元素如下所示:
[
{
"name": "Meltem",
"items": [
{
"name": "Yilmaz",
"histories": [
{
"date": 1615370705561,
"school": "BAU"
}
]
}
]
}
]
所以我可以通过以下方式来访问name元素:
var myData = data().
stream().
filter(x -> x.getName().equals("Meltem"))
.collect(Collectors.toList())
.get(0);
那么,如何在Java8中使用stream()到达学校呢?
此外,还有 getName()
我在那里呼唤;
@Getter
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"name",
"items",
})
public class Package {
@JsonProperty("name")
private String name;
@JsonProperty("items")
private List<Item> items;
}
3条答案
按热度按时间uxhixvfz1#
flatMap
是你的朋友:var mySchool = data().
stream()
.filter(x -> x.getName().equals("Meltem"))
.flatMap(x->x.getItems().stream())
.flatMap(item->item.getHistories().stream())
.map(history->history.getSchool())
.findFirst()
.orElse(null);//or use the Optional for whatever you want
zlhcx6iw2#
这应该起作用:
假设你的课程是这样的:
ctrmrzij3#
对你不管用吗?