【发布时间】:2015-03-06 15:36:25
【问题描述】:
在 List 上的 stream().filter().map() 之后,我有一个 List<List<Object>> 类型的数据结构,如下所示:
[["1","a",20],
["1","b",10],
["2","a",10],
["2","b",30]]
我想要的是按内部列表的第一个元素的值进行分组,将中间元素排除在外,最后将每个“组”的最后一个元素相加。
[["1", 30],
["2", 40]]
对不起,如果这对你们中的某些人来说是显而易见的,但我还没有找到任何例子来说明如何实现这一点。我认为它可以通过 Stream.reduce(U identity, BiFunction accumulator, BinaryOperator combiner) 来完成,但到目前为止我还没有成功。如果有人可以为此提供一些示例代码,我相信它也会受到许多其他人的赞赏。
【问题讨论】:
-
当我认为这是正确的使用方法时,我是否误解了“减少”的概念?
标签: functional-programming java-8 reduce java-stream