簡體   English   中英

Java - groupingBy with collectingAndThen - 是否有更快/更好/更清潔的方式?

[英]Java - groupingBy with collectingAndThen - Is there a faster / better / cleaner way?

我有以下課程(有getter):

public class AlgorithmPrediction {
    private final String algorithmName;
    private final Map<BaseDatabaseProduct, Double> productsToAccuracy;
}

現在我想從AlgorithmPrediction對象填充的集合中創建一個映射,其中algorithmName (唯一)作為鍵, productsToAccuracy作為值。 我想不出比這更復雜的東西:

algorithmPredictions.stream()
.collect(
        groupingBy(
                AlgorithmPrediction::getAlgorithmName,
                Collectors.collectingAndThen(
                        toSet(),
                        s -> s.stream().map(AlgorithmPrediction::getProductsToAccuracy).collect(toSet())
                )
        )
);

這不可能是對的。 我錯過了什么? 謝謝!

algorithmPredictions.stream()
                    .collect(toMap(AlgorithmPrediction::getAlgorithmName, 
                                   AlgorithmPrediction::getProductsToAccuracy));

如果我理解正確,你不能使用Collectors.toMap(Function<> keyMapper, Function<> valueMapper)收集器,如下所示:

Map<String, Map<BaseDatabaseProduct, Double>> result = algorithmPredictions.stream()
        .collect(Collectors.toMap(
                AlgorithmPrediction::getAlgorithmName,
                AlgorithmPrediction::getProductsToAccuracy));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM