我有一个Arraylist,我想将它转换为数组。我正在使用这个:
double[] array = new double[list.size()];
double [] array = list.toArray(new double[list.size()]);
但是,它不起作用。知道如何解决它吗?提前致谢。 它似乎返回了对象。
答案 0 :(得分:4)
要将List<Double>
转换为double[]
,或者需要基本类型的任何内容,除了执行传统的for
循环(或调用第三方库方法)之外别无选择它执行传统的for
循环,例如Guava的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()]);
它可以为您提供盒装Double
的数组,无论如何都可能满足您的目的。
答案 1 :(得分:3)
List不能包含基本类型。假设它包含Double
的实例,唯一的方法是迭代列表并取消装箱每个元素(希望列表中没有空):
double[] array = new double[list.size()];
int i = 0;
for (Double d : list) {
array[i] = d;
i++;
}
答案 2 :(得分:0)
应该是:
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();
答案 3 :(得分:0)
答案 4 :(得分:0)
使用Object Double而不是原始double:
ArrayList<Double> list = new ArrayList<Double>();
...add data
Double[] array=list.toArray(new Double[list.size()]);
答案 5 :(得分:-1)
StringBuffer strBuffer = new StringBuffer();
for(Object o:list){
strBuffer.append(o);
}
double []x = new double[]{strBuffer.toString()};
我认为这应该有用