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修改。