Сбор статистики в Java8 - PullRequest
0 голосов
/ 20 сентября 2018

Я бы хотел собрать статистику после группировки набора данных, но я не знаю, возможно ли это

Map<String, DoubleSummaryStatistics> menuStatistics =

                menuPrices.parallelStream()
                        .collect(Collectors.groupingBy(cp -> dt1.format(cp.getUpdateDate())),
                                Collector.of(DoubleSummaryStatistics::new));

, потому что у меня есть некоторые проблемы с компиляцией:

Multiple markers at this line
    - The method of(Supplier<R>, BiConsumer<R,T>, BinaryOperator<R>, Collector.Characteristics...) in the type Collector is not applicable for the arguments 
     (DoubleSummaryStatistics::new)
    - The constructed object of type DoubleSummaryStatistics is incompatible with the descriptor's return type: R

1 Ответ

0 голосов
/ 20 сентября 2018

Вам нужно использовать Collectors.summarizingDouble(), предполагая, что ваш класс (тип элемента Stream) имеет свойство double, для которого вы хотите вычислить статистику:

Map<String, DoubleSummaryStatistics>
    menuStatistics =
        menuPrices.parallelStream()
                  .collect(Collectors.groupingBy(cp -> dt1.format(cp.getUpdateDate()),
                           Collectors.summarizingDouble(cp -> cp.getSomeDoubleValue())));
...