繁体   English   中英

有条件的Java8 Lambda分组

[英]java8 lambda grouping with condition

Java8和Lambdas-现在是我的角色。 还有另一个问题。 我用lamda进行了分组,如下所示:

Map<Question, List<Answer>> temp = foo.stream().flatMap(x -> x.getValue().stream()).flatMap(
        x -> x.getAnswers().stream()).collect(
        Collectors.groupingBy(
                zz -> zz.getQuestion(),
                Collectors.mapping(z -> z, Collectors.toList())
        )
);

我从Foo列表中获得了自己,Foo是一个问题图,其中包含用户做出的汇总答案列表。


分组时是否可以添加条件?
在此示例中,我的Question.class具有一个名为Weight的Double字段,有些Questions使此字段为null或值为0.0。
我在聚合的地图中不需要它们,因此我想知道是否可以在此处添加条件,还是需要遍历生成的地图?



编辑
foo是Result.class的列表,x.getValue()返回AnswerSet.class的列表,x.getAnswers()返回Answer.class的列表。 Answer.class有一个Question.class作为字段

foo.stream()
   .filter(q -> q.weight != null && q.weight != 0.0)
   .<continue what you were doing>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM