繁体   English   中英

多维数组:可变长度行?

[英]Multi-dimensional arrays: Variable length row?

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

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?
}

谢谢。

基本上你不能。 “多维”数组只是一个数组数组。 因此,您必须知道“外部”数组的大小,以便创建它。

所以你的选择是:

  • 以反转方式使用数组作为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> 。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM