У меня есть список 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)
...