Java 如何传递数组维度?

Java 如何传递数组维度?,java,arrays,methods,dimensions,Java,Arrays,Methods,Dimensions,如何在java中传递数组维度和数组? 我喜欢这样: public String[1][1] abc(){ return theStringArray } //but this isn't possible public String[][] makeArray(int rows, int columns) { return new String[rows][columns]; } 那么有没有一种方法可以传递数组的维数呢 现在我有两个方法可以为每个维度传递一个int,但是有更好

如何在java中传递数组维度和数组? 我喜欢这样:

public String[1][1] abc(){
return theStringArray
}    
//but this isn't possible
public String[][] makeArray(int rows, int columns) {
    return new String[rows][columns];
}
那么有没有一种方法可以传递数组的维数呢

现在我有两个方法可以为每个维度传递一个int,但是有更好的方法吗

其核心问题是:

当我试图通过数组并找到它的长度时,它会给我带来大量错误。问题是,接收数组的类的数组需要初始化传递的数组将复制到的数组,但是如果没有传递的数组维度,如何初始化它

类将数组传递给:

String[][] lordStats;
ArrayList<String> troopList;

public void loader() {
    lord lorder = new lord();
    lordStats = lorder.returnLord();
    total = lorder.returnLordTotal();
for (int i = 0; i < lordStats[0].length; i++)
    troopList.add (lordStats[i][2]);

}

在Java中,通常不必随数组一起传递数组维度,因为每个数组都隐式地知道自己的维度

如果数组被称为
arr
,则
arr.length
将返回其大小。如果
arr
是一个2D数组,那么
arr[0]。length
将给出第一行的大小
arr[1]。length
是下一行的大小,依此类推


如果函数要分配一个调用方指定大小的数组,只需将所需的维度作为
int
参数传递给函数。

在Java中不必显式传递数组维度,数组具有长度属性

public String[][] abc() {
    return new String[10][10];
}

只需使用
.length
即可计算出数组的长度。但是Java数组只是数组的数组(不是连续元素的N维块)


因此,它们可以是锯齿状的,这意味着每行有不同数量的列。因此,您只能依赖
stringray[0]
(第一行的列计数)的长度等于
stringray[1]
,前提是有文件证明
stringray
不是锯齿状的。

Java中的所有数组都是一维的。您可以有一个数组,它实际上是一个二维数组。但是,每个元素可以有不同的长度,并且无法强制使用单个二维尺寸。您可以这样做:

public String[1][1] abc(){
return theStringArray
}    
//but this isn't possible
public String[][] makeArray(int rows, int columns) {
    return new String[rows][columns];
}
然后可以按如下方式查询数组:

String[][] array = makeArray(1, 1);
System.out.println("Row count: " + array.length);
System.out.println("Column count: " + array[0].length); // assumes >0 elements
但是,有人可以这样做:

String[][] array = makeArray(3, 3);
array[0] = new String[1];

前面的代码会给出一个误导性的列数结果。

但是当我试图传递数组并找到它的长度时,它会给我带来大量错误。问题是接收数组的类的数组需要初始化传递的数组将复制到的数组,但是如果没有传递的数组维度,我如何初始化它?@Russell:从口头描述中很难理解这个问题。给我们看一些代码。