-2

次のようなJavaメソッドで配列を初期化するとします。

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

メソッドの後半でこれを行うことはできますか?

myArray[0] = new double[c];
4

2 に答える 2

3

はい、できます。配列の詳細についてはhttp://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html

于 2012-05-18T22:36:23.843 に答える
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、配列への参照 (ポインタ) は変更できないが、配列の要素 (別のポインタを持つ可能性がある) は問題なく変更できると修飾子が言うためです。

編集:

2次元配列の別の例:

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];
    }
}
于 2012-05-18T22:51:45.497 に答える