我有一个Records
列表,其中包含两个字段:LocalDateTime instant
和Double data
。
我想按小时对所有记录进行分组,并创建一个Map<Integer, Double>
。 其中键(Integer)是小时,值(Double)是该小时的最后数据减去该小时的第一条数据。
目前为止我已经完成了以下工作:
Function<Record, Integer> keyFunc = rec->rec.getInstant().getHour();
Map<Integer, List<Record>> valueMap = records.stream().collect(Collectors.groupingBy(keyFunc));
我希望值映射表存储的是Double
而不是List<Records>
。
例如:记录列表可以如下:
Instant Data
01:01:24 23.7
01:02:34 24.2
01:05:23 30.2
...
01:59:27 50.2
02:03:23 54.4
02:04:23 56.3
...
02:58:23 70.3
...
结果地图应该是:
Key Value
1 26.5 (50.2-23.7)
2 15.9 (70.3-54.4)
...
values(Double) are last Data of that hour - first Data of that hour.
吗? - Ryuzaki L