【问题标题】:Java initialize 2d arraylistJava初始化二维数组列表
【发布时间】:2013-11-21 17:02:31
【问题描述】:

我想做2D动态ArrayList例子:

[1][2][3]
[4][5][6]
[7][8][9]

我使用了这个代码:

 ArrayList<ArrayList<Integer>> group = new ArrayList<ArrayList<Integer>>();
        group.add(new ArrayList<Integer>(1, 2, 3));

我应该如何初始化这个数组列表?

【问题讨论】:

  • 初始化数组列表如?

标签: java dynamic arraylist multidimensional-array


【解决方案1】:

如果内部列表不需要特别指定 ArrayLists,那么在 Java 7 中进行此类初始化的一种方法如下:

ArrayList<List<Integer>> group = new ArrayList<List<Integer>>();
group.add(Arrays.asList(1, 2, 3));
group.add(Arrays.asList(4, 5, 6));
group.add(Arrays.asList(7, 8, 9));
for (List<Integer> list : group) {
    for (Integer i : list) {
        System.out.print(i+" ");
    }
    System.out.println();
}

Demo on ideone.

【讨论】:

  • 它有效,但如何显示呢? Iterator it = ArrayList.iterator(); while(it.hasNext()) { 整数 a = it.next(); System.out.println(a); }
  • @user2458768 查看打印数组的代码(查看更新的演示以查看它在 ideone 上运行)。
  • 这太违反直觉且难以理解……当然不是批评你,而是批评 Java。
【解决方案2】:

使用

group.add(new ArrayList<Integer>(Arrays.asList(1, 2, 3)));

ArrayList 在构造函数中有一个Collection 参数。

如果您将group 定义为

List<List<Integer>> group = new ArrayList<>();
group.add(Arrays.asList(1, 2, 3));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-15
    • 2012-11-29
    • 2018-12-09
    • 2021-01-13
    • 1970-01-01
    相关资源
    最近更新 更多