可以使用可变长度列,例如:
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?
}
谢谢。
可以使用可变长度列,例如:
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]
instead of array[row][column]
Use a list instead, so you can add new rows as you go:
List<Object[]> rows = new ArrayList<Object[]>();
for (SomeData data : someSource) {
Object[] row = new Object[5];
...
rows.add(row);
}
(Or even better, encapsulate your concept of a "row" in a separate class, so you have a List<Row>
.)