【发布时间】:2015-03-24 14:43:28
【问题描述】:
我想使用 java8 streams 迭代嵌套列表,并在第一次匹配时提取列表的一些结果。
不幸的是,如果子元素与过滤器匹配,我还必须从父内容中获取值。
我该怎么做?
java7
Result result = new Result();
//find first match and pupulate the result object.
for (FirstNode first : response.getFirstNodes()) {
for (SndNode snd : first.getSndNodes()) {
if (snd.isValid()) {
result.setKey(first.getKey());
result.setContent(snd.getContent());
return;
}
}
}
java8
response.getFirstNodes().stream()
.flatMap(first -> first.getSndNodes())
.filter(snd -> snd.isValid())
.findFirst()
.ifPresent(???); //cannot access snd.getContent() here
【问题讨论】:
标签: java java-8 java-stream optional