若使用:
List<String> list = Arrays.asList(arr);
确实会返回一个ArrayList对象,但是该类是Arrays类 中一个私有静态内部类,而不是常见的java.util.ArrayList类。
这个java.util.Arrays.ArrayList
类具有set()
,get()
,contains()
等方法,但是不具有任何添加或移除元素的任何方法。
因为该类的大小size
是固定的。
为了创建出一个真正的ArrayList
,代码应该写成:
ArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(arr));
ArrayList
的构造方法可以接受一个Collection
类型的对象,而我们的java.util.Arrays.ArrayList
正好也是它的一个子类。
实际上,更加高效的代码示例是:
ArrayList<String> arrayList = new ArrayList<String>(arr.length);
Collections.addAll(arrayList, arr);