【发布时间】:2016-02-22 12:59:03
【问题描述】:
我有一个MoveTrack 对象列表,我想按月份分组并计算数据并将数据存储在Map<String, Double> 中。我正在尝试学习 Lambda 并尝试使用它,因此尝试使用 Lambda 完成这项任务。
class MoveTrack {
private Date time;
private Double movementAmount;
//getters and setters
}
// in my main method
List<MoveTrack> mveTracking = new ArrayList<>();
Map<String, Double> movMap = new HashMap<>();
所以我希望能够将moveTracking 列表分组并将值汇总到movMap 中,每个映射键 = 月份名称(一月、二月等)和对应的值是移动量,即该月的双打总和。
【问题讨论】:
-
嗯,你试过了吗?我怀疑你想使用
Stream.collect和Collectors.groupingBy。 -
和 Collectors.summingDouble 作为下游收集器
-
@JonSkeet 是的,尝试了 groupBy 和 toMap,但只有错误。尤其是当我开始放入 simpledateformater 时。
-
所以请展示您尝试过的内容,以及这些错误是什么。
-
@JonSkeet 一切都好,我首先需要一个全新的视角来确定我是否走在正确的道路上