Array to List and List to Array Note

Array to List and List to Array

Recently, due to the integration of new and old systems, I encountered the problem of conversion between arrays and lists. The following is sorted out with reference to the information on the Internet.

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

}

The results of the runtime are posted below, which are divided into correct code and error code:

  • Correct result:
1
2
3
-------------
11
22
33
3
-------------
aa
bb
cc
dd
4
-------------
  • Wrong result
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)
Published 10 original articles · Likes2 · Visits 1926

Guess you like

Origin blog.csdn.net/yuhao22/article/details/53965412