数组转List以及List转数组小记

数组转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("-------------");
    }

}

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

  • 正确结果:
1
2
3
-------------
11
22
33
3
-------------
aa
bb
cc
dd
4
-------------
  • 错误结果
1
2
3
-------------
[I@15db9742
1
-------------
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)
发布了10 篇原创文章 · 获赞 2 · 访问量 1926

猜你喜欢

转载自blog.csdn.net/yuhao22/article/details/53965412
今日推荐