0

在这里我有

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

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

public double [] getarray(){

} 
4

4 回答 4

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;
} 
于 2012-04-21T20:51:44.000 回答
1

您的数组列表有一个 toArray() 方法。尝试使用这样的:

public double [] getarray(){
    return values.toArray();
} 
于 2012-04-21T20:44:14.947 回答
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);
于 2012-04-21T20:53:27.920 回答
0

如果问题是将其转换为原始类型double[],并且您可以使用Guava,那么double[] Doubles.toArray(Collection<Double>)这项工作就可以了。(披露:我为 Guava 做出了贡献。)

于 2012-04-21T22:56:27.183 回答