5

可以执行可变长度列,例如:

private int k[][] = new int[3][];

for(int i = 0; i < k.length; i++) {
   k[i] = new int[i+1];
}

我想知道是否可以做可变长度行,如果你知道一列的长度?:

private int k[][] = new int[][5];

for(int i = 0; i < k.length; i++) {
   // How would you do this?
}

谢谢你。

4

1 回答 1

4

你不能,基本上。“多维”数组只是数组的数组。所以你必须知道“外部”数组的大小才能创建它。

所以你的选择是:

  • 以相反的方式使用数组,array[column][row]而不是array[row][column]
  • 请改用列表,这样您就可以随时添加新行:

    List<Object[]> rows = new ArrayList<Object[]>();
    for (SomeData data : someSource) {
        Object[] row = new Object[5];
        ...
        rows.add(row);
    }
    

    (或者更好的是,将您的“行”概念封装在一个单独的类中,这样您就有一个List<Row>.)

于 2013-05-22T11:23:32.467 回答