【发布时间】:2019-06-26 20:53:30
【问题描述】:
我想使用 Java 中的 Stream 填充 HashMap<Long, Long>。但是,我没有做对。我希望有人可以提供帮助。
我的想法是这样的:
HashMap<Long, Long> mapLongs = LongStream
.rangeClosed(1, 10)
.collect(Collectors.toMap(x -> x, x -> getSquare(x)));
其中getSquare 是一个返回正方形的简单函数,例如:
long getSquare(long x) {
return x * x;
}
但是,我收到一条错误消息,指出 getSquare() 不能应用于对象。当我尝试将 x 强制转换为对象时,出现以下错误:
不存在类型变量 A、K、T、U 的实例,因此 Collector> 符合 Supplier
底线:我被卡住了。
另外(显然),我正在尝试做一些比用平方值填充地图更复杂的事情......
【问题讨论】:
标签: java hashmap java-stream collectors