繁体   English   中英

Java将ArrayList转换为int数组

[英]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); 

你的listStirngArrayList 所以你必须将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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM