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