我有以下类(class)(带 setter/getter ):

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

现在,我想从一个由AlgorithmPrediction对象填充的集合中创建一个 map ,并以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));

10-04 17:00