如何在Java中将List<Long>转换为double[]

3
我将尝试在Java中将一个List<Long>转换为double[]数组,
我按照以下方式进行操作,
  List<Long> longList = ........;

  int len = longList.size();

  double[] doubleArray = new double[len];

  for (int i = 0; i < len; i++)
     doubleArray[i] = (double) longList.get(i);

我在想是否有更聪明的方式来做到这一点(以及如何做到),因为我正在使用 Java-8,我看到了一些使用流方法的转换。但找不到可以解决我的问题的任何东西。

3个回答

3

你确实可以使用流来完成这个任务:

double[] result = longList.stream()
                          .mapToDouble(Long::doubleValue)
                          .toArray();

可能会稍微更短、更简洁,但在性能方面你不会有任何收益。


1

只需使用:

double[] doubleArray = longList.stream().mapToDouble(v -> v).toArray();

0
如果您正在使用Java 8,请尝试以下方法:
list.stream().map(v -> (double)v)
    .toArray(Double[]::new);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接