У меня есть список карт с простыми объектами Runner.class:
List<Map<String, Runner>> times
, Например:
{
"pedro": [
{ lap=1, time=00:01:16.11 },
{ lap=2, time=00:00:42.45 },
{ lap=3, time=00:00:58.23 }
],
"huan": [
{ lap=1, time=00:00:48.33 },
{ lap=2, time=00:00:41.21 }
]
"gomez": [
{ lap=1, time=00:01:02.42 },
{ lap=2, time=00:01:12.31 },
{ lap=3, time=00:01:58.14 },
{ lap=3, time=00:00:55.41 }
]
}
Вот мой класс бегунов:
public class Runner {
private Integer lap;
private LocalTime time;
// Getters and setters...
}
Мне нужно получить карту статистики, как это делает лямбда summaryStatistics()
, с минимальным, максимальным и средним временем для каждого бегуна, которая выглядит так:
Map<String, DoubleSummaryStatistics> statsMap
, поэтому я мог бы повторить его и использовать методы getMin()
, getAverage()
и getMax()
... Но я понятия не имею, как работать с LocalTime?
e ->e.getValue().stream() .collect(Collectors.summarizingDouble(r -> r.getTime() .toSecondOfDay())
, или используйте один.mapToDouble(r -> r.getTime() .toSecondOfDay())
13.11.2019map
. Я просто хотел выделитьtoSecondOfday
и что для получения сводных значений необходимо применить обратный подход. Спасибо за ответ иsummarizingDouble
напоминание. 13.11.2019