Java 将arraylist转换为array

Java 将arraylist转换为array,java,arrays,arraylist,Java,Arrays,Arraylist,我有一个Arraylist,我想把它转换成一个数组。我用的是: double[] array = new double[list.size()]; double [] array = list.toArray(new double[list.size()]); 但是,它不起作用。你知道我怎么修吗?提前谢谢。 它似乎返回了一个对象 应该是: Double[] array = new Double[list.size()]; list.toArray(array); // fill the arr

我有一个Arraylist,我想把它转换成一个数组。我用的是:

double[] array = new double[list.size()];
double [] array = list.toArray(new double[list.size()]);
但是,它不起作用。你知道我怎么修吗?提前谢谢。 它似乎返回了一个对象

应该是:

Double[] array = new Double[list.size()];
list.toArray(array); // fill the array
如果需要一个基元数组,请迭代数组中的每个元素:

double[] array = new double[list.size()];
for(int i = 0; i < list.size(); i++) array[i] = list.get(i).doubleValue();
double[]数组=新的double[list.size()];
对于(inti=0;i
要将
列表
转换为
双[]
,或任何需要原语类型的地方,除了执行传统的
For
循环(或调用第三方库方法执行传统的
For
循环,如番石榴),别无选择


这将获得装箱的
Double
s数组,这可能满足您的需要。

列表不能包含基元类型。假设它包含
Double
的实例,唯一的方法是迭代列表并取消对每个元素的装箱(希望列表中没有空值):


请阅读java文档:


HTH.

使用对象双精度而不是原语双精度:

ArrayList<Double> list = new ArrayList<Double>();
...add data
Double[] array=list.toArray(new Double[list.size()]);
ArrayList list=new ArrayList();
…添加数据
Double[]数组=list.toArray(新的Double[list.size()]);

我认为这应该起作用。你的清单在哪里?您知道集合只能包含原语的包装器吗?您尝试过这个吗?泛型的工作方式不是这样的。@LouisWasserman你是对的,我错过了:)。。更新了我的答案。我怀疑提问者的目标是什么。。他们可能想对那些双元组执行操作。这个答案不起作用。这和你的一样。请确保你的答案在你发布之前有效。
Double[] array = list.toArray(new Double[list.size()]);
double[] array = new double[list.size()];
int i = 0;
for (Double d : list) {
    array[i] = d;
    i++;
}
ArrayList<Double> list = new ArrayList<Double>();
...add data
Double[] array=list.toArray(new Double[list.size()]);
       StringBuffer strBuffer = new StringBuffer();
        for(Object o:list){
            strBuffer.append(o);
        }
        double []x = new double[]{strBuffer.toString()};