Arrays类中的asList方法返回的是一个"假的"List
- asList方法不能接收基本数据类型
int[] nums = {1,2,34,5,5};
List list = Arrays.asList(nums);
System.out.println(list.size());
System.out.println(list.get(0));
输出结果为:
1
[I@17c68925
这是因为在这个方法的实现中使用了泛型,而泛型是不能够接收基本数据类型的。
源码如下:
- asList生成的List,不能添加与修改,否则会报错
这是因为这个ArrayList不是我们所熟悉的collection中的List,而是一个继承了AbstractList的类
而这个ArrayList并没有实现add之类的方法。
通常,我们要把数组转化为真正的List可以这样
Integer[] nums = {1,2,34,5,5};
List list = Arrays.asList(nums);
ArrayList<Integer> a = new ArrayList<>(list);
System.out.println(a.get(2));
System.out.println(a.add(0));
结果为:
34
true