在java中将ArrayList转换为数组的方法

时间:2012-04-21 20:37:16

标签: java arrays

我有

class x{
    ArrayList<Double> values;
    x() {
        values= new ArrayList<Double>();
    }

//这里我想编写一个方法将类(x)中的arraylis(values)转换为数组,以便能够在我的程序中使用它。有没有办法做到这一点。谢谢你的帮助。

public double [] getarray(){

} 

4 个答案:

答案 0 :(得分:2)

你不应该真的需要将ArrayList转换为数组,但是如果你这样做,这就是方法。

public double [] getArray(){
    double[] array = new double[values.size()];
    for(int i =0;i<values.size();i++)
    {
        array[i] = values.get(i) != null ?values.get(i):  0.0;
    }
    return array;
} 

答案 1 :(得分:1)

您的数组列表具有toArray()方法。尝试使用那个:

public double [] getarray(){
    return values.toArray();
} 

答案 2 :(得分:1)

Apache Commons Lang的帮助下(参见:ArrayUtils.toPrimitive()):

final ArrayList<Double> objList = new ArrayList<Double>();
final Double[] objArray = objList.toArray(new Double[objList.size()]);
final double[] primArray = ArrayUtils.toPrimitive(objArray);

答案 3 :(得分:0)

如果问题是将其转换为原始double[],并且您可以使用Guava,则double[] Doubles.toArray(Collection<Double>)可以正常完成工作。 (披露:我向Guava捐款。)