Java填充带有1d数组的2d数组

时间:2015-01-08 11:59:56

标签: java arrays function 2d

什么是最好的方式来填充以下数组:
从主要:

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

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

我正在使用的功能......:

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

     return out;
 }

有可能做这样的事吗?或者我必须用for循环填充它吗?

使用此代码即可获得错误&#34;非静态方法someFunction()无法从静态内容引用---&#34;(netbeans)在行data[a] = someFunction();

2 个答案:

答案 0 :(得分:1)

您必须指定数组包含的行数。

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

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

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

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

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

答案 1 :(得分:0)

通过添加&#34;静态&#34;来改变你的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;
 }

问候蒂姆