将双精度数组转换为双精度数组列表

2022-09-02 02:08:03

当我尝试将双精度数组转换为双精度数组列表时,我收到以下错误:

线程 “main” java.lang.ClassCastException 中的异常:[D 不能被强制转换为 java.lang.Double

下面是我的代码。

double [] firstValueArray ;

ArrayList <Double> firstValueList = new ArrayList (Arrays.asList(firstValueArray));

我正在将此列表与另一个列表进行比较,并将结果分配给另一个双精度变量。

请让我知道此错误的原因。


答案 1

唉,不适用于基元。Apache commons-lang 有Arrays.asList(..)

Double[] doubleArray = ArrayUtils.toObject(durationValueArray);
List<Double> list = Arrays.asList(doubleArray);

答案 2

使用Java 8 Streams API,这是通过

DoubleStream.of(doublesArray).boxed().collect(Collectors.toList());

如果需要返回 作为实现,则使用ArrayList

DoubleStream.of(doublesArray).boxed().collect(Collectors.toCollection(ArrayList::new));

这个单行不需要任何额外的库。