将arraylist转换为数组

时间:2013-04-02 19:54:40

标签: java arrays arraylist

我有一个Arraylist,我想将它转换为数组。我正在使用这个:

double[] array = new double[list.size()];
double [] array = list.toArray(new double[list.size()]);

但是,它不起作用。知道如何解决它吗?提前致谢。 它似乎返回了对象。

6 个答案:

答案 0 :(得分:4)

要将List<Double>转换为double[],或者需要基本类型的任何内容,除了执行传统的for循环(或调用第三方库方法)之外别无选择它执行传统的for循环,例如Guava的Doubles.toArray)。

double[] array = new double[list.size()];
for (int i = 0; i < list.size(); i++) {
  array[i] = list.get(i);
}

或者,您可以

Double[] array = list.toArray(new Double[list.size()]);

它可以为您提供盒装Double的数组,无论如何都可能满足您的目的。

答案 1 :(得分:3)

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

double[] array = new double[list.size()];
int i = 0;
for (Double d : list) {
    array[i] = d;
    i++;
}

答案 2 :(得分:0)

应该是:

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();

答案 3 :(得分:0)

答案 4 :(得分:0)

使用Object Double而不是原始double:

ArrayList<Double> list = new ArrayList<Double>();
...add data
Double[] array=list.toArray(new Double[list.size()]);

答案 5 :(得分:-1)

       StringBuffer strBuffer = new StringBuffer();
        for(Object o:list){
            strBuffer.append(o);
        }
        double []x = new double[]{strBuffer.toString()};

我认为这应该有用