将 long 列表转换为 double 列表

cod*_*001 3 java java-8 java-stream

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

这是代码:

List<Long> list = new ArrayList<>();
list.add(4L);
list.add(92L);
list.add(100L);
Run Code Online (Sandbox Code Playgroud)

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

Rav*_*ala 6

您必须使用map运算符转换Long为 aDouble然后使用toList收集器。

List<Double> doubleValues = list.stream()
    .map(Double::valueOf)
    .collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

相反,如果您担心自动装箱的开销,您可以创建一个double. 这是它的外观。

double[] doubleArr = list.stream().mapToDouble(v -> v).toArray();
Run Code Online (Sandbox Code Playgroud)