千万别这样使用Arrays.asList详解
前言
使用Arrays.asList()的原因无非是想将数组或一些元素转为集合,而你得到的集合并不一定是你想要的那个集合。
而一开始asList的设计时用于打印数组而设计的,但jdk1.5开始,有了另一个比较更方便的打印函数Arrays.toString(),于是打印不再使用asList(),而asList()恰巧可用于将数组转为集合。
1、错误用法
如果你这样使用过,那你可要注意了。
错误一
将基本类型数组作为asList的参数
int[]arr={1,2,3}; Listlist=Arrays.asList(arr); System.out.println(list.size());
猜一下输出结果?
错误二
将数组作为asList参数后,修改数组或List
String[]arr={"欢迎","关注","Java"}; Listlist=Arrays.asList(arr); arr[1]="爱上"; list.set(2,"我"); System.out.println(Arrays.toString(arr)); System.out.println(list.toString());
猜一下输出结果?
错误三
数组转换为集合后,进行增删元素
String[]arr={"欢迎","关注","Java"}; Listlist=Arrays.asList(arr); list.add("新增"); list.remove("关注"); System.out.println(list.toString());
猜一下输出结果?
你是不是以为上面