Java-列为二维数组的元素

时间:2018-10-18 15:16:55

标签: java arrays arraylist multidimensional-array

这可能是一个奇怪的问题,但是...

如何使用List / ArrayList作为2D数组的类型?

如果我不能正确解释自己的话:

int[][] arrayName = new int[9][9];

在此示例中,我想使用ArrayList<int>而不是int,但是我不允许这样做。要么,否则我可能使用了错误的语法。

编辑: 看来我对我的问题还不够清楚(并写了一个误导性的标题,我不好,现在就解决它。)

我所拥有的是一个由2D数组构成的网格,如上面的示例,但我希望将ArrayList of Integers作为此网格的单个单元格的元素。

ArrayList<Integer>[][] grid = new ArrayList<Integer>()[9][9]

类似这样的事情。这是正确的语法吗?我什至可以这样做吗?

2 个答案:

答案 0 :(得分:0)

由于您不能在集合中使用原始类型(在您的情况下为int),因此需要使用Interger包装器

因此二维数组列表应为

List<List<Interger>> array = new ArrayList<List<Interger>>();

答案 1 :(得分:0)

<>之间必须为class。就您而言,Integer

要制作2D ArrayList,您可以这样做:

ArrayList<ArrayList<Integer>> a = new ArrayList<ArrayList<Integer>>();

ArrayList<Integer> b = new ArrayList<Integer>();
b.add(1); b.add(2); b.add(3); b.add(4); b.add(5); b.add(6);

ArrayList<Integer> c = new ArrayList<Integer>();
c.add(3); c.add(7); c.add(1); c.add(3); c.add(9);

ArrayList<Integer> d = new ArrayList<Integer>();
d.add(8); d.add(3); d.add(3); d.add(8); d.add(3); d.add(6);

ArrayList<Integer> e = new ArrayList<Integer>();
e.add(7); e.add(2); e.add(8);

a.add(b); a.add(c); a.add(d); a.add(e);

for(ArrayList<Integer> aux : a) {

    for(Integer temp : aux) {

        System.out.print(temp + " ");

    }

    System.out.println("");

}

//1 2 3 4 5 6
//3 7 1 3 9 
//8 3 3 8 3 6 
//7 2 8