我想我的ArrayList转换为双[]数组。 为什么我不能投用这种方法,有什么不好?
public static void convert(ArrayList list, double array[]) {
array = new double [list.size()];
for (int x = 0; x < list.size(); x++) {
array[x]=(double) list.get(x);
}
}
我得到这个错误信息
String cannot be cast to java.lang.Double
我有这个代码的和平,如果我fropm原始类型的ArrayList改为双人间,也许建议更改此代码不能正常工作?
getTest().addAll(Arrays.asList(line.split(",")));
用这个:
array[x]=Double.parseDouble(list.get(x));
异常消息称它 - 你的ArrayList包含字符串值。 您应该使用仿制药ArrayList<String>
防止这种运行时故障
你可以不适用铸造上String
,使其翻一番这样的-
array[x]=(double) list.get(x);
你的list
是ArrayList
的Stirng
。 所以,你必须每个转换String
项从list
到double
这样的-
public static void convert(ArrayList list, double array[]) {
array = new double [list.size()];
for (int x = 0; x < list.size(); x++) {
array[x]=Double.parseDouble((String)list.get(x));
}
}
香港专业教育学院得到了主意。 我只是将我的ArrayList到那么ArrayList的代码示例将工作和我一样...
使用此代码:
public static void convert(ArrayList list, double array[]) {
array = new double [list.size()];
for (int x = 0; x < list.size(); x++)
{
Object value = list.get(x);
if(value instanceof String)
{
array[x]=Double.parseDouble(value.toString());
}
else if(value instanceof Double)
{
array[x]=(double) list.get(x);
}
else if(value instanceof Integer)
{
array[x]=(int) list.get(x);
}
}
}