无法解析方法'map'Java 8 Lambda

时间:2017-03-29 00:44:00

标签: lambda java-8

我有一组对象。我想根据某些标准对其进行过滤,符合标准的标准,我想要执行一些操作&然后再做一些映射。

Set<Tasks> v1;
Map<V, Long> vC = v1.stream()
                .filter(t -> someCondition(t))
                //for these filtered operations perform some action
                .forEach(t -> t.performAction(summation(t))
                .map(t->summation(t))
                .collect(groupingBy(identity(), counting()));

我在地图上遇到错误无法解析方法'map'。如果我删除forEach它的工作原理。我知道forEach是一个终端操作,但我想不出替代方案。

1 个答案:

答案 0 :(得分:3)

您可以使用peek操作来实现您的目标:

Map<V, Long> vC = v1.stream()
    .filter(t -> someCondition(t))
    .peek(t -> t.performAction(summation(t))
    .map(t->summation(t))
    .collect(groupingBy(identity(), counting()));