参考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。
适用于创建新List
。 List<Integer> list3 = new ArrayList<>(Arrays.asList(I));
那么,为什么这个以及它的优点和缺点是什么?
答案 0 :(得分:1)
无法调用添加,删除等是完全不同的。如果您不需要这些方法,Arrays.asList会为您提供一个完美的数组视图作为List(对于采用集合而不是数组的API)。如果你需要改变'#34;形状&#34;列表,然后新的ArrayList&lt;&gt;(Arrays.asList(myArray))是要走的路。