Java中的最终2D数组

时间:2012-05-18 22:30:29

标签: java multidimensional-array final

如果我在Java方法中初始化数组,如:

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

我可以稍后在方法中执行此操作吗?

myArray[0] = new double[c];

2 个答案:

答案 0 :(得分:3)

是的,你可以。有关数组的更多信息http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html

答案 1 :(得分: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修饰符会说对数组(指针)的引用不能改变,但是数组的元素(可能有另一个指针)可以没有问题地改变。 / p>

编辑:

使用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];
    }
}