我有一个 Arraylist,我想将其转换为数组。我正在使用这个:
double[] array = new double[list.size()];
double [] array = list.toArray(new double[list.size()]);
但是,它不起作用。知道如何解决吗?提前致谢。它似乎返回对象。
为了将 a 转换List<Double>
为 adouble[]
或任何您需要原始类型的东西,除了执行传统for
循环(或调用执行传统循环的第三方库方法for
,例如 Guava's 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()]);
这将为您提供 boxedDouble
的数组,无论如何这可能足以满足您的目的。
List 不能包含原始类型。假设它包含 的实例Double
,唯一的方法是遍历列表并拆箱每个元素(希望列表中没有 null):
double[] array = new double[list.size()];
int i = 0;
for (Double d : list) {
array[i] = d;
i++;
}
它应该是:
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();
使用 Object Double 而不是原始的 double:
ArrayList<Double> list = new ArrayList<Double>();
...add data
Double[] array=list.toArray(new Double[list.size()]);
StringBuffer strBuffer = new StringBuffer();
for(Object o:list){
strBuffer.append(o);
}
double []x = new double[]{strBuffer.toString()};
我认为这应该有效