数组转ArrayList

使用Arrays.asList()对数组转化成集合后,其底层数据结构还是数组

例如:

1 String[] str = {"a","b"};
2 List list = Arrays.asList(str);
3 list.add("c");//报错
4 str[0] = "d";//list.get(0)也随之改变

正确写法为:

1.new ArrayList(),然后for循环数组,一个个add();

2.List list new ArrayList<>(Arrays.asList(str));//推荐写法

3.使用java8的Stream:

1 Integer [] myArray = { 1, 2, 3 };
2 List myList = Arrays.stream(myArray).collect(Collectors.toList());
3 //基本类型也可以实现转换(依赖boxed的装箱操作)
4 int [] myArray2 = { 1, 2, 3 };
5 List myList = Arrays.stream(myArray2).boxed().collect(Collectors.toList());

4.使用 Apache Commons Collections:

1 List<String> list = new ArrayList<String>();
2 CollectionUtils.addAll(list, str);
原文地址:https://www.cnblogs.com/bevis-byf/p/14291677.html