2014-10-19 104 views
-1

我对Java真的很陌生,对此有点麻烦。我在这里和其他有类似问题的地方看过其他代码,但我不明白库文件等等。我正试图了解现在的基础知识。任何帮助,将不胜感激。我当前的代码是:将随机数分配给2d数组时遇到的麻烦

public static void main(String[] args) { 

     double[][] father = new double[25][25]; 
     for (int i = 0; i < 25; i++){ 
      father[i] = Math.random(); 
      for (int j = 0; j < 25; j++){ 
       father[j] = Math.random(); 
      } 

     } 
+0

太谢谢你了。我在理解编码背后的算法时遇到了一些麻烦,这对我有很大帮助!对此,我真的非常感激。 – peneloperain 2014-10-19 05:18:14

回答

0

我不知道Java,但一个二维数组应该像这样工作

public static void main(String[] args) { 

     double[][] father = new double[25][25]; 
     for (int i = 0; i < 25; i++){ 
      for (int j = 0; j < 25; j++){ 
       father[i][j] = Math.random(); 
      } 

     } 
0

您正在尝试双打的阵列设置为双。当试图指定2d数组中的某个项时,请始终使用arrayName [index1] [index2]。

public static void main(String[] args) { 

    double[][] father = new double[25][25]; 
    for (int i = 0; i < 25; i++){ 
     for (int j = 0; j < 25; j++){ 
      father[i][j] = Math.random(); 
     } 

    } 
0

一个二维数组,例如你需要两个索引来引用特定的元素。例如father[3][6]是数组的元素(双精度型,因为这是数组的类型),但是father[i]不是。

此外,您应该使用数组长度,而不是硬编码值作为迭代限制。这样,如果数组的大小发生变化,您也不需要更改限制。您应该使用for (int i = 0; i < father.Length; i++)而不是for (int i = 0; i < 25; i++),这样如果数组长度发生变化,您仍然可以迭代整个事物而不会溢出。

总而言之:

double[][] father = new double[25][25]; 
for (int i = 0; i < father.Length; i++) { 
    for (int j = 0; j < father[i].Length; j++) { 
     father[i][j] = Math.random(); 
    } 
}