我有以下类(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));