Arrays.asList()的细节
Arrays.asList()的参数不可以是 八种基本类型的数组
如:我们把一个int[] 型数组转成一个 ArrayList ,虽然不会报错, 但转换出来的结果不是我们想要的
int[] arr = new int[]{1,2,3,4,5,6}
Array<Ingeger> list = new ArrayList(Arrays.asList(arr));
system.out.println( list.size() )
#可以看到输出的结果是 1 ,也就是说 转换后的 list中只有一个元素
其错误原因就是因为 Arrays.asList() 只对接收引用类型的数组, 这里要得到正确的结果, 我们要需要在定义数组的时间使用 基本数据类型的包装类
Integer[] arr = new Integer[]{1,2,3,4,5,6,7};
ArrayList<Integer> list = new ArrayList(Arrays.asList(arr))
system.out.println( list.size() )
#可以看到输出的结果是 7 ,也就是说 转换后的 list中只有一个元素
Arrays.asList() 返回的是一个List 对象, 但这个对象是 Arrays的一个内部类, 而不是 java.util.list 的接口类, 所以, 返回的这个list对象没有 add 和 remove的功能
Integer[] arr = {1,2,3,4,5};
List list = Arrays.asList(arr);
list.add(6) #注意这一句是会报错的
===========================
所以我们要用新的一个 ArrayList 对其进行操作
ArrayList<Integer> list1 = new ArrayList(Arrays.asList(arr))
list1.add(10) #这样就可以操作了