回到顶部
您的当前位置: 编程语言> JAVA> JAVA基础> 系列教程
Java基础(十)多维数组
2014-03-11 09:21:18
标签: 网络整理 Java 基础 多维数组

在JAVA中,数组的元素可以是任何已存在的类型(包括数组);因此,一个一维数组又可以作为另一个一维数组的元素;在JAVA中,元素是一维数组的数组被称为二维数组。

二维数组的基础知识

1)声明二维数组变量并创建二维数组

下面是声明二维数组的语法:

数据类型[][] 数组名;

或者

数据类型 数组名[][]; //允许这种方式,但并不推荐使用它

2)获取二维数组的长度

二维数组实际上是一个数组,它的每个元素都是一个一维数组。数组x的长度是数组中元素的个数,可以用x.length获取该值。元素x[0],x[1],...,x[x.length-1]也是数组。可以使用x[0].length,x[1].length,...,x[x.length-1].length获取它们的长度。

3)锯齿数组

二维数组中的每一行本身就是一个数组,因此,各行的长度就可以不同。这样的数组称为锯齿数组。

二维数组的初始化

语法格式:

类型名[][] 数组名 = {{初值n1,...初值nm},{...},...};

例如,

int[][] a = {{1,2,3},{3,4,5},{5,6,7},{7,8,9}};
二维数组的应用举例

例如,矩阵的简单处理:

public class Test {
    public static void main(String[] args) {
        //按矩阵形式输出数组元素、计算正对角线元素之和
        int[][] a = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
        int i, j, diagonal_sum = 0;
        //按矩阵形式输出数组元素
        for (i = 0; i < a.length; i++) {
            for (j = 0; j < a[i].length; j++)
                System.out.print(a[i][j] + "\t");
            //换行
            System.out.println();
        }
        //计算正对角线元素之和
        for (i = 0; i < a.length; i++)
            for (j = 0; j < a[i].length; j++) {
                if (i == j) {
                    diagonal_sum += a[i][j];
                }
                System.out.print("正对角线元素之和是:" + diagonal_sum);
            }
    }
}

说明:
a.length的值是数组a的长度;
a[i].length的值是数组a中第i行的长度。

数组作为方法的参数

由于数组是被作为对象来处理的,因此,数组名作为方法的参数时,形参数组名引用的就是实参数组实例了。

例如,数组名作为方法参数的示例——数组的排序:

public class Test {
    public static void main(String[] args) {
        int[] a = { 3, 2, 6, 0, 1, 4, 9, 7, 8, 5 };
        sort(a);
        for (int i = 0; i < a.length; i++) {
            System.out.println(a[i] + "\t");
        }
    }
    static void sort(int[] arr) {
        int i, j, k, x, temp;
        for (i = 0; i < arr.length - 1; i++)//采用“选择排序”法
        {
            x = arr[i];
            k = i;
            for (j = i + 1; j < arr.length; j++)
                if (arr[j] > x) {
                    x = arr[j];
                    k = j;
                }
            temp = arr[i];
            arr[i] = arr[k];
            arr[k] = temp;
        }
    }
}
多维数组

在以上的了解中,我们知道在Java中,可以创建n维数组,其中n是任意整数。

可以对二维数组变量的声明以及二维数组的创建方法进行推广,用于声明n维数组变量和创建n>=3的n维数组。

例如,语法声明一个三维数组变量scoers,创建一个数组并将它的引用赋值给scores:

double[][][] scores= new double[10][24][2];

多维数组实际上是一个数组,它在每个元素都是另一个数组。