在Java 8中,从Double流中收集Long列表。

20 浏览
0 Comments

在Java 8中,从Double流中收集Long列表。

我有以下代码:

List list = new ArrayList<>();
list.add(4L);
list.add(92L);
list.add(100L);
List newList = list.stream().map(i -> i * 2.5)
                                  .mapToLong(Double::doubleToRawLongBits)
                                  .collect(Collectors.toList());

这段代码无法工作,编译错误为:

接口java.util.stream.LongStream中的方法collect无法应用于给定的类型;

所需:java.util.function.Supplier,java.util.function.ObjLongConsumer,java.util.function.BiConsumer

找到:java.util.stream.Collector>

原因:无法推断类型变量R

(实际和形式参数列表长度不同)

我尝试了许多Collectors的用法,但仍然无法让它工作。

我做错了什么?

0