gpt4 book ai didi

java - 从 ArrayList 转换为 double[] 时出错?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:35:56 26 4
gpt4 key购买 nike

我有一个名为 outArrayList,我需要将它转换为 double[]。我在网上找到的例子说明了两件事:

首先,尝试:

double[] d = new double[out.size()];
out.toArray(d);

但是,这会产生错误(eclipse):

The method toArray(T[]) in the type List<Double> is not applicable for the arguments (double[]).

我在 StackOverflow 上找到的第二个解决方案是:

double[] dx = Arrays.copyOf(out.toArray(), out.toArray().length, double[].class);

但是,这会产生错误:

The method copyOf(U[], int, Class<? extends T[]>) in the type Arrays is not applicable for the arguments (Object[], int, Class<double[]>)

是什么导致了这些错误,如何将 out 转换为 double[] 而不会产生这些问题? out 确实只包含 double 值。

谢谢!

最佳答案

我认为您正在尝试将包含 Double 对象的 ArrayList 转换为原始 double[]

public static double[] convertDoubles(List<Double> doubles)
{
double[] ret = new double[doubles.size()];
Iterator<Double> iterator = doubles.iterator();
int i = 0;
while(iterator.hasNext())
{
ret[i] = iterator.next();
i++;
}
return ret;
}

或者,Apache Commons 有一个 ArrayUtils 类,它有一个方法 toPrimitive()

 ArrayUtils.toPrimitive(out.toArray(new Double[out.size()]));

但我觉得如上所示自行完成此操作非常容易,而不是使用外部库。

关于java - 从 ArrayList 转换为 double[] 时出错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14134527/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com