将元素添加到初始化的数组列表

时间:2013-12-07 16:28:03

标签: java arraylist

我有一个关于在创建List之后使用List的问题。我在下面的代码片段中收到了java.lang.UnsupportedOperationException。有什么想法吗?

List <Integer> aList = Arrays.asList(3, 4);
if (condition)
    aList.add(5);

这不起作用

aList.add(new Integer(5));

我想初始化一个包含常用值的列表,然后添加条件值。

4 个答案:

答案 0 :(得分:2)

来自the javadoc

  

返回由指定数组支持的固定大小列表。 (对返回列表的更改“直写”到数组。)

(强调我的)

如果您想要一个可以调整大小的List,请使用

new ArrayList<>(Arrays.asList(3, 4));

答案 1 :(得分:1)

Arrays.asList返回一个固定大小的数组,你无法添加它。请参阅api

答案 2 :(得分:1)

来自docs

  

返回由指定数组支持的固定大小列表。 (对返回列表的更改“直写”到数组。)此方法与Collection.toArray()结合,充当基于数组的API和基于集合的API之间的桥梁。返回的列表是可序列化的,并实现RandomAccess。

返回的列表不支持添加新元素。

答案 3 :(得分:0)

  • 根据documentationasList(T...)函数返回由指定数组支持的固定大小列表。

  • 返回的列表没有引用源的add(E element)函数实现。

你需要这样做:

    ArrayList<Integer>aList  =  new ArrayList<>(Arrays.asList(3, 4));