如果您使用的是Eclipse Collections(以前称为GS Collections),则可以使用FastList.newListWith(...)
或FastList.wrapCopy(...)
。
两种方法都使用varargs,因此您可以内联创建数组或传入现有数组。
MutableList<Integer> list1 = FastList.newListWith(1, 2, 3, 4);
Integer[] array2 = {1, 2, 3, 4};
MutableList<Integer> list2 = FastList.newListWith(array2);
两种方法之间的区别在于是否复制数组。newListWith()
不复制数组,因此需要恒定的时间。如果您知道该数组可以在其他地方突变,则应避免使用它。
Integer[] array2 = {1, 2, 3, 4};
MutableList<Integer> list2 = FastList.newListWith(array2);
array2[1] = 5;
Assert.assertEquals(FastList.newListWith(1, 5, 3, 4), list2);
Integer[] array3 = {1, 2, 3, 4};
MutableList<Integer> list3 = FastList.wrapCopy(array3);
array3[1] = 5;
Assert.assertEquals(FastList.newListWith(1, 2, 3, 4), list3);
注意:我是Eclipse Collections的提交者。