有效地添加ArrayList元素

时间:2010-01-19 01:13:03

标签: java arrays arraylist

我如何缩短这个?

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);

4 个答案:

答案 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)

K.I.S.S.

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,或两者兼而有之?