如果您使用的是Eclipse Collections(以前称为GS Collections),则可以使用FastList.newListWith(...)
或FastList.wrapCopy(...)
。
这两种方法都采用可变参数,因此您可以内联创建数组或传入现有数组。
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 的提交者。