将多头列表转换为双精度列表

问题描述 投票:1回答:3

我是Streams的新手,我有一个长值列表。我想使用流将长值列表转换为双值列表。

这里是代码:

List<Long> list = new ArrayList<>();
list.add(4L);
list.add(92L);
list.add(100L);

我想将列表转换为List<double>。谢谢

java java-8 stream
3个回答
2
投票

您必须使用map运算符将long转换为double,然后使用toList收集器。

List<Double> doubleList = list.stream()
    .map(v -> Double.valueOf(v))
    .collect(Collectors.toList());

1
投票
List<Double> collect1 = list.stream().mapToDouble(s -> s).boxed().collect(Collectors.toList());

警告:boxing()是开销。


0
投票

尝试以下行为:

List<Double> doubles = list.stream().map(e -> Double.valueOf(e)).collect(Collectors.toList());

说明

list.stream().

这使您创建(并遍历)流。

map(e -> Double.valueOf(e))

您迭代的每个(长)元素,将被映射为Double

.collect(Collectors.toList());

将其映射到List<Double>

© www.soinside.com 2019 - 2024. All rights reserved.