数组转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);

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM