2012-05-18 42 views
-2

如果我在一個Java方法就像初始化數組:最終二維數組在Java中

final double[][] myArray = new double[r][c]; 

,我會被允許在後面的方法做到這一點?

myArray[0] = new double[c]; 
+2

是。你不是爲自己嘗試嗎? –

回答

2

我會爲您提供一個這樣的例子:

public class Main { 
    public static void main(String[] args) { 
     final int[] finalArray = new int[5]; 
     finalArray[0] = 10; 
     System.out.println(finalArray[0]); 
     finalArray[0] = 9001; 
     System.out.println(finalArray[0]); 
     finalArray = new int[5] //compile error!!! 
    } 
} 

這是因爲final修改會說,參考陣列(指針)不能改變,但該數組的元素(可以有另一個指針)可以改變沒有問題。

編輯:

與2D陣列又如:

public class Main { 
    public static void main(String[] args) { 
     final int[][] array2d = new int[5][]; 
     for(int i = 0; i < array2d.length;i++) { 
      array2d[i] = new int[6]; 
     } 
     //the size of the rows can change with no problem. 
     array2d[0] = new int[8]; 
    } 
} 
+0

謝謝你的建設性答覆。在2D情況下,我可以假設我的數組中的每一行都是帶有指針的另一個數組,當我這樣做時我正在改變它們的引用? – Erol

+0

是的,你可以,如果你嘗試它的代碼將起作用。我會用這個樣本進行更新。 –