[英]Java convert ArrayList to int array
我想将我的arraylist转换为double array []。 为什么我不能用这种方法施放,有什么不对?
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更改为Double,可能会有更改此代码的建议吗?
getTest().addAll(Arrays.asList(line.split(",")));
用这个:
array[x]=Double.parseDouble(list.get(x));
异常消息说它 - 您的ArrayList包含String值。 您应该使用泛型作为ArrayList<String>
来防止此运行时失败
你不能在String
上应用强制转换来使它像这样加倍 -
array[x]=(double) list.get(x);
你的list
是Stirng
的ArrayList
。 所以你必须将list
的每个String
项转换为这样的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);
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.