Java中将数组转成List

方法一:通过List构造方法

public static void main(String[] args) {
        Integer[] integerArray = {1, 3, 5, 10, 18};
        //方法一:
        List<Integer> listOne = new ArrayList(Arrays.asList(integerArray));
        System.out.println(listOne);
        listOne.add(20);
        System.out.println(listOne);

    }


通过ArrayList中一个构造方法来将数组转化成ArrayList,但是由于ArrayList中的构造方法里面没有直接以数组作为参数的方法,所以需要先通过Arrays.asList()方法进行一个简单的转化,使用的构造方法如下图:
Java中将数组转成List_第1张图片

方法二:通过Arrays

public static void main(String[] args) {
        Integer[] integerArray = {1, 3, 5, 10, 18};
        //方法二:
        List<Integer> listTwo = Arrays.asList(integerArray);
        System.out.println(listTwo);
        listTwo.add(25);
        System.out.println(listTwo);

    }

通过Arrays这个数组工具类中的asList方法将数组转换成ArrayList,这里如果你没看过Arrays的源码的话很容易掉进去一个很深的坑里,这里通过asList方法返回的这个ArrayList其实并不是我们平时开发中经常用到的那个util包下的ArrayList,而是Arrays类里面的一个静态内部类,该静态内部类的内部实现是一个被final修饰的不可变的数组,所以我们不能进行add等操作的,只能进行一些在该静态内部类实现了的方法,如果进行add操作的话,会出现UnsupportedOperationException异常,这个问题大家在使用的时候一定要注意
Java中将数组转成List_第2张图片

方法三:通过Collections

public static void main(String[] args) {
        Integer[] integerArray = {1, 3, 5, 10, 18};
        //方法三:
        List<Integer> listThree = new ArrayList<>();
        Collections.addAll(listThree, integerArray);
        System.out.println(listThree);
        listThree.add(30);
        System.out.println(listThree);

    }


该方式通过Collections中的addAll方法将数组里面的每一个元素通过循环的方式放入到List中,这里使用的Collections.addAll()方法源码如下:
Java中将数组转成List_第3张图片

你可能感兴趣的:(Java)