ArrayList与Arrays.asList()返回的List
方法Arrays.asList(...A)
返回Arrays.asList(...A)
的List
表示。 这里返回的对象是由数组支持的List
,但不是ArrayList
对象。
我正在寻找Arrays.asList()
返回的对象和一个ArrayList
对象之间的差异 – 这是一个快速的来源,可以告诉这些而不会深入到代码中。
TIA。
当您调用Arrays.asList时,它不会返回java.util.ArrayList
。 它返回一个java.util.Arrays$ArrayList
,它是一个不可变列表。 您无法添加它,也无法从中删除。
如果您尝试添加或删除元素,您将获得UnsupportedOperationException
我会稍微扩展一下我的评论,
如果使用asList
,则可能会出现一个问题,因为它与ArrayList
对象没有区别:
List list = Array.asList(array) ; list.remove(0); //UnsupportedOperationException :(
这里你不能删除0元素,因为asList
返回由指定数组支持的固定大小的列表 。 所以你应该这样做:
List newList = new ArrayList(Arrays.asList(array));
为了使newList
修改。