文章标题

来源:互联网 发布:农行软件开发待遇 编辑:程序博客网 时间:2024/06/06 15:53

数组转List以及List转数组

最近做项目由于要新旧系统整合,遇到了数组和List的转换问题,下面参照网上的资料进行了整理,废话不多说,直接上代码。

public class List2Array {    public static void main(String[] args) {        /**         * List转数组         */        ArrayList<String> list = new ArrayList<String>();        String[] strings = new String[list.size()];        list.add("1");        list.add("2");        list.add("3");              strings = list.toArray(strings);        for(String s:strings){            System.out.println(s);        }        System.out.println("-------------");        /**         * 数组转List         */         //在使用数组转List的时候不建议对基础类型进行转换,因为会把数组作为一个单独的对象返回(即下文注释的部分)         //如果需要对基础类型数组进行转换,可以用apache提供的ArrayUtils工具类将基础类型数组转换成Object。        int[] i = {11,22,33};        List<Object> intList = Arrays.asList(ArrayUtils.toObject(i));        //List<Object> intList = Arrays.asList(i);        for(Object j:intList){            System.out.println(j.toString());        }        System.out.println(intList.size());        System.out.println("-------------");        String s[] = {"aa","bb","cc"};        //如果list直接等于aslist返回的结果,则无法进行add操作,会报不支持add操作的错误(尽管编译时候不会报错)        List<String> sList = new ArrayList<String>(Arrays.asList(s));        //List<String> sList = Arrays.asList(s);        sList.add("dd");        for(String str:sList){            System.out.println(str);        }        System.out.println(sList.size());        System.out.println("-------------");    }}

下面贴出运行时的结果,分为正确代码和错误代码两种结果:

  • 正确结果:
123-------------1122333-------------aabbccdd4-------------
  • 错误结果
123-------------[I@15db97421-------------Exception in thread "main" java.lang.UnsupportedOperationException    at java.util.AbstractList.add(Unknown Source)    at java.util.AbstractList.add(Unknown Source)    at list2array.List2Array.main(List2Array.java:44)
0 0
原创粉丝点击