sic*_*umi 9 java lambda java-8 java-stream
我正在尝试将双打列表流式传输到a Map<Double, Double>,其中键是原始列表中的双打,并且值是一些计算值.
这就是我的代码:
// "values" is a List<Double> that was passed in
ImmutableMap<Double, Double> valueMap = values.parallelStream()
.collect(Collectors.toMap(p -> p, p -> doThing(values, p)));
private Double doThing(List<Double>, Double p) {
Double computedValue = 0.0;
// Do math here with p
return computedValue;
}
Run Code Online (Sandbox Code Playgroud)
然而,IntelliJ抱怨这p -> p不是一个有效的lambda表达式 - 它抱怨循环推理.我打电话时也遇到错误doThing,因为p是lambda参数而不是Double.
当我在调用中尝试强制p转换为无法投射时.DoubledoThing
我错过了一些非常明显的东西吗 似乎没有办法真正对我的lambda参数做任何事情......
我认为这里的问题只是你的收集操作返回一个Map<Double, Double>但是类型valueMap是ImmutableMap<Double, Double>.
你也忘了给List<Double>参数命名,doThing但我认为在写这个问题时只是一个错字.
| 归档时间: |
|
| 查看次数: |
2485 次 |
| 最近记录: |