无法在一个流中同时进行filter->forEach->collect吗?
我想实现类似以下的功能:
items.stream()
.filter(s-> s.contains("B"))
.forEach(s-> s.setState("ok"))
.collect(Collectors.toList());
过滤,然后改变过滤结果的一个属性,最后将结果收集到一个列表中。然而,调试器显示如下错误信息:
无法在原始类型void
上调用collect(Collectors.toList())
。
我需要使用两个流来实现吗?