我正在努力 groupBy
用 Doubles 计算后给所有人命名。
persons.stream()
.map(p -> (p.getHeight() * p.getWeight()))
.collect(Collectors.groupingBy(Person::getName)));
但是Stream<Double>
不适用于这些参数。
我如何处理整数/ double ,然后再处理 groupBy 字符串?
最佳答案
一种可能的解决方案如下:
persons.stream().collect(Collectors.groupingBy(
Person::getName,
HashMap::new,
Collectors.mapping(
p -> p.getHeight() * p.getWeight()
Collectors.toList())));
或者,如果您不希望出现重复名称,则可以使用更简单的
persons.stream().collect(Collectors.toMap(
Person::getName,
p -> p.getHeight() * p.getWeight()));
关于java - Collectors.groupingBy 和 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28036025/