Java 用一维数组填充二维数组

Java fill 2d array with 1d arrays

填充以下数组的最佳方法是什么:
来自主要:

String[][] data = new String[x][3]; 

for(int a = 0; a < x; a++){ 
    data[a] = someFunction();
}

我正在使用的功能..:[=​​4=]

 public String[] someFunction(){
     String[] out = new String[3];

     return out;
 }

有没有可能做这样的事情?还是我必须用 for-loop 来填充它?

使用此代码,我在 data[a] = someFunction();

行收到错误 "non-static method someFunction() cannot be refferenced from static content ---"(netbeans)

您必须指定数组包含多少行。

String[][] data = new String[n][];

for(int i = 0; i < data.length; i++){
    data[i] = someFunction();
}

请注意 someFunction 可以 return 不同长度的数组。

当然,您的 someFunction return 是一个空引用数组,因此您仍然需要在某个循环中初始化该数组的 String

我刚刚注意到你遇到的错误。将您的 someFunction 更改为静态。

通过添加 "static".

更改您的 someFunction()

您还应该考虑将 ArrayList 用于此类任务,这些任务是动态的并且是为您的目的而设计的(我猜)。

public static void main(String[] args){

    int x = 3;

    String[][] data = new String[x][3]; 

    for(int a = 0; a < x; a++){ 
        data[a] = someFunction();
    }

}

public static String[] someFunction(){
     String[] out = new String[3];
     return out;
 }

你好蒂姆