java如何收集要列出的DoubleStream
我有以下代码:
Stream.of("1,2,3,4".split(",")).mapToDouble(Double::valueOf).collect(Collectors.toList());
我想返回List<Double>
这段代码无法编译
我看到了错误:
Error:(57, 69) java: method collect in interface java.util.stream.DoubleStream cannot be applied to given types;
required: java.util.function.Supplier<R>,java.util.function.ObjDoubleConsumer<R>,java.util.function.BiConsumer<R,R>
found: java.util.stream.Collector<java.lang.Object,capture#1 of ?,java.util.List<java.lang.Object>>
reason: cannot infer type-variable(s) R
(actual and formal argument lists differ in length)
如何解决这个问题
# 1 楼答案
您可以使用^{} 。这将一个} 返回)映射到一个
DoubleStream
(原语双元流,由^{Stream<Double>
注意,我将^{} 更改为^{} :这可以防止
Double.valueOf
返回的Double
被解除绑定到原语double
但是,为什么要从
mapToDouble
开始呢?您可以这样使用map
: