数组转ArrayList

若使用:

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);
posted @ 2017-12-13 12:43  Freelancy  阅读(153)  评论(0编辑  收藏  举报