在这里我有
class x{
ArrayList<Double> values;
x() {
values= new ArrayList<Double>();
}
//这里我想写一个方法来将我在class(x)中的arraylis(values)转换成一个数组,以便能够在我的程序中使用它。有没有办法做到这一点。谢谢你的帮助。
public double [] getarray(){
}
您实际上并不需要将 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;
}
您的数组列表有一个 toArray() 方法。尝试使用这样的:
public double [] getarray(){
return values.toArray();
}
在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);
如果问题是将其转换为原始类型double[]
,并且您可以使用Guava,那么double[] Doubles.toArray(Collection<Double>)
这项工作就可以了。(披露:我为 Guava 做出了贡献。)