【发布时间】:2018-03-03 04:30:58
【问题描述】:
我是 Streams 和 Reduce 的新手,所以我正在尝试它并遇到了问题:
我有一个计数器列表,其中包含一个开始计数器和结束计数器。一个项目的开始计数器总是前一个的结束计数器。我有一个这些计数器listItems 的列表,我想有效地循环遍历它,过滤掉不活动的记录,然后将列表缩减为一个新的列表,其中设置了所有 StartCounters。我有以下代码:
List<CounterChain> active = listItems.stream()
.filter(e -> e.getCounterStatus() == CounterStatus.ACTIVE)
.reduce(new ArrayList<CounterChain>(), (a,b) -> { b.setStartCounter(a.getEndCounter()); return b; });
但它并没有真正起作用,我有点卡住了,谁能给我一些建议来帮助我完成这个工作?或者有没有同样有效的更好的方法来做到这一点?谢谢!
【问题讨论】:
标签: java java-8 java-stream reduce