(数组)列出Java中的实现
数组列表实现的问题:
我的代码
List<Integer> arrayList=new ArrayList<Integer>(3);
arrayList=Arrays.asList(10,20);
System.out.println(arrayList.size());
//arrayList.add(30);
System.out.println(arrayList.size());
我得到unsupportedException at line 4
问题是什么
# 1 楼答案
从数组转换为集合Obejct时。i、 例如,从基于数组到基于集合的API,然后它将为您提供固定大小的集合对象,因为数组的行为是固定大小的
收集样品进行确认。
从^{} 中可以看到}
java.util.Arrays.ArrayList
类不@Override add(index, element), set(index, element), remove(index)
。因此,从继承开始,它执行超类add()
函数,该函数抛出^{因为
AbstractList<E>
是一个抽象类,所以它提供了iterator() and listIterator()
的实现,以便我们可以在列表对象上迭代# 2 楼答案
# 3 楼答案
阵列。asList返回一个不可完全修改的集合。要添加或删除元素,可以使用接受集合的ArrayList构造函数包装数组返回的集合。asList
# 4 楼答案
Arrays.asList返回固定大小的数组,它是AbstractList的一个直接子类,显然不支持
add
和remove
函数如果您打算稍后执行
add
或remove
函数,可以尝试ArrayList而不是Arrays.asList
;它们都是List
的类型,但有不同的实现