如何从List转换为不同类型的数组(例如,我想从List<Integer> to double[]
转发)
答案 0 :(得分:4)
遍历列表并转换每个元素。以下是List<Integer>
到double[]
的示例。
public static double[] integersToDoubles(List<Integer> integers) {
double[] ret = new double[integers.size()];
for (int i = 0; i < ret.length; i++) {
ret[i] = integers.get(i).doubleValue();
}
return ret;
}
答案 1 :(得分:2)
答案 2 :(得分:2)
1)迭代每个元素并将其转换为double
并将其添加到double[]
答案 3 :(得分:1)
您需要进行两次单独的转换。一个是从List到数组。第二种是从一种类型到另一种类型的每种元素。第二种可能是也可能是不可能的。
首先看here。
第二种是数字之间有明确定义的转换(整数,双数等)。有些是无损的,有些是精确的。
许多类型都有String表示,因此您可以编写:
String s = foo.toString()
或许:
Foo foo = new Foo(s);
但你必须明白这些 - 没有魔力。如果没有String序列化,您将获得该对象的机器地址。
答案 4 :(得分:0)
我希望这有充分的帮助
List<Integer> List = new ArrayList<Integer>();
List.add(new Integer(100));
List.add(new Integer(200));
List.add(new Integer(300));
double[] db =new double[List.size()];
System.out.println(List);
for(int i=0;i<List.size();i++)
{
System.out.println(List.get(i).toString());
db[i]=Double.parseDouble(List.get(i).toString());
}
答案 5 :(得分:0)
一般方法 - 采用任何类型的集合和任何Number
输入(甚至是混合类型):
public static double[] toDoubles(Collection<? extends Number> numbers) {
double[] result = new double[input.size()];
int index = 0;
for (Number number:numbers)
result[index++] = number.doubleValue();
return result;
}
答案 6 :(得分:0)
如果您使用的是Java 8,则只需一行代码即可实现此目的:
/**
* Transform a list of objects into an array of primitives
*
* @param listOfObject
* @return
*/
public static double[] convertToPrimitives(List<Double> listOfObjects) {
return listOfObjects.stream().mapToDouble(Double::doubleValue).toArray();
}
/**
* Transform a list of objects into an array of primitives
*
* @param listOfObject
* @return
*/
public static double[] convertToPrimitives(List<Integer> listOfObjects) {
return listOfObjects.stream().mapToDouble(Integer::doubleValue).toArray();
}