使用Arrays.asList()

时间:2017-04-03 14:18:17

标签: java arrays list arraylist

参考Difference between Arrays.asList(array) vs new ArrayList<Integer>(Arrays.asList(ia)) in java 我很好奇Arrays.asList()方法的确切目的是什么。

当我们从中创建一个新的List时,例如 -

Integer[] I = new Integer[] { new Integer(1), new Integer(2), new Integer(3) };
List<Integer> list1 = Arrays.asList(I);
List<Integer> list2 = ((List<Integer>) Arrays.asList(I));

我们无法像.add().remove()那样执行大部分常规操作。因此,我无法为其添加迭代器以避免concurrent modification

Oracle docs state

  

public static List asList(T ... a)

     

返回由指定数组支持的固定大小的列表。 (改为   返回的列表&#34;通过&#34;到数组。)此方法充当   基于数组和基于集合的API之间的桥梁,结合起来   与Collection.toArray()。返回的列表是可序列化的   实现RandomAccess。

适用于创建新ListList<Integer> list3 = new ArrayList<>(Arrays.asList(I));

那么,为什么这个以及它的优点和缺点是什么?

1 个答案:

答案 0 :(得分:1)

无法调用添加,删除等是完全不同的。如果您不需要这些方法,Arrays.asList会为您提供一个完美的数组视图作为List(对于采用集合而不是数组的API)。如果你需要改变'#34;形状&#34;列表,然后新的ArrayList&lt;&gt;(Arrays.asList(myArray))是要走的路。