array中asList()方法

asList()方法可以将数组转换成list对象

List<String> list = Arrays.asList("a","b","c");

  但是这个方法只适用于对象型数据的数组,如String、Integer等包装类,且不支持add()、remove()、clear()等方法

  同时这个方法转换出来的list长度是不可变的,原因如下:

  asList()方法底层是返回了一个ArrayList对象

public static <T> List<T> asList(T... a) {
    return new ArrayList<T>(a);
}

  但是这个ArrayList不是常见的java.util包下的集合类,而是Arrays类自己定义的一个静态内部类。

private final E[] a;
 
    ArrayList(E[] array) {
            if (array==null)
                throw new NullPointerException();
        a = array;
    }

  由上述源码可知这个ArrayList只支持遍历。

  综上,如果所要的list只用来遍历,可以使用Arrays.asList()方法;

        如果这个list还要用来添加和删除元素,还是应该使用集合类ArrayList一个个从数组中添加元素。

 

参考:https://blog.csdn.net/rocling/article/details/102768442

上一篇:Java Arrays.asList 和 new ArrayList(Arrays.asList()) 的对比


下一篇:被Arrays.asList坑了后,我决定分析它的源码