java收藏家。分组方式和地图
我正在努力groupBy
在用双倍计算后说出所有人的名字
persons.stream()
.map(p -> (p.getHeight() * p.getWeight()))
.collect(Collectors.groupingBy(Person::getName)));
但是Stream<Double>
不适用于这些论点
如何处理整数/双精度,然后按字符串分组
你可以在下面搜索框中键入要查询的问题!
我正在努力groupBy
在用双倍计算后说出所有人的名字
persons.stream()
.map(p -> (p.getHeight() * p.getWeight()))
.collect(Collectors.groupingBy(Person::getName)));
但是Stream<Double>
不适用于这些论点
如何处理整数/双精度,然后按字符串分组
# 1 楼答案
它不起作用,因为你的
map
正在将它从Person
映射到Integer
或Double
(取决于身高/体重的测量方式)。一旦map
调用完成,实际上就有了一个数字流,因此不能将它们作为Person
对象收集还有流的JavaDoc。map()证实了这一点:
也许如果我们知道更多关于你试图用这些流做什么,我们可以给你一个更直接的答案,如何解决这个问题
# 2 楼答案
一种可能的解决办法如下:
或者,如果你不希望有重复的名字,你可以使用更简单的名字