我有
class x{
ArrayList<Double> values;
x() {
values= new ArrayList<Double>();
}
//这里我想编写一个方法将类(x)中的arraylis(values)转换为数组,以便能够在我的程序中使用它。有没有办法做到这一点。谢谢你的帮助。
public double [] getarray(){
}
答案 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捐款。)