我如何缩短这个?
int[] a1 = {2, 0, 1, 4, 3};
int[] a2 = {3, 1, 2, 0, 4};
int[] a3 = {4, 2, 3, 1, 0};
int[] a4 = {0, 3, 4, 2, 1};
int[] a5 = {1, 4, 0, 3, 2};
ArrayList<int[]> array = new ArrayList<int[]>();
array.add(a1);
array.add(a2);
array.add(a3);
array.add(a4);
array.add(a5);
答案 0 :(得分:3)
List<int[]> ints = Arrays.asList(new int[][]{{2, 0, 1, 4, 3},
{3, 1, 2, 0, 4},
{4, 2, 3, 1, 0},
{0, 3, 4, 2, 1},
{1, 4, 0, 3, 2}});
是一种方式。
修改:bmargulies正确地指出,生成的List
不一定是ArrayList
;如果需要,可以将元素复制到新元素中。
答案 1 :(得分:2)
ArrayList<int[]> array = new ArrayList<int[]>();
array.add(new int[] { 2, 0, 1, 4, 3 });
array.add(new int[] { 3, 1, 2, 0, 4 });
array.add(new int[] { 4, 2, 3, 1, 0 });
array.add(new int[] { 0, 3, 4, 2, 1 });
array.add(new int[] { 1, 4, 0, 3, 2 });
它与旧代码完全相同,更短,并且表现良好。
答案 2 :(得分:0)
使用Arrays.asList
int[][] a = {
{2, 0, 1, 4, 3},
{3, 1, 2, 0, 4},
{4, 2, 3, 1, 0},
{0, 3, 4, 2, 1},
{1, 4, 0, 3, 2}
};
List<int[]> arr = Arrays.asList(a);
答案 3 :(得分:0)
你只是想'数组'包含相同的信息吗?类似的东西:
int[][] a = {{2, 0, 1, 4, 3}, {3, 1, 2, 0, 4}, {3, 1, 2, 0, 4}, {0, 3, 4, 2, 1}, {1, 4, 0, 3, 2}};
ArrayList<int[]> array = new ArrayList<int[]>();
for(int[] i: a)
array.add(i);
比您发布的内容短。您是在尝试缩短变量a1-5的声明,还是重复调用add,或两者兼而有之?