【Java】二维数组与多维数组

355 阅读3分钟

本人已参与「新人创作礼」活动,一起开启掘金创作之路。

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第26天,点击查看活动详情

目录

今天阿文介绍的内容为:

  • Java中的二维数组
  • Java中的多维数组

Java二维数组

在Java中,也提供了二维数组以及多维数组供程序设计人员使用。二维数组就是一个数据类型是一维数组的一维数组。

1.二维数组的声明与分配内存

二维数组声明的方式和一维数组类似,内存的分配也一样是用new这个关键字。

声明格式:

数据类型[][] 数组名;
数组名 = new 数据类型[行的个数][列的个数];

静态初始化:

数据类型[][] 数组名 = { {第0行初值}, {第1行初值},...};

需要注意的是,用户不需要定义数组的长度,因此在数组名后面的中括号里不必填入任何的内容。在大括号内还有几组大括号,每组大括号内的初值依序指定给数组的第0、1、...、n行元素。

例子:

int[][] num = {
    {30, 12, 23, 45, 66},
    {45, 67, 89, 15, 47}
};

该语句声明了一个整形二维数组num,数组有2行4列共8个元素,大括号里的几组初值分别依序指定给各行里的元素存放,num[0][0]为30,num[0][1]为12,...,num[1][4]为47。

2.每行元素个数不同的二维数组

在Java中定义二维数组更加灵活,允许二维数组中每一行的元素个数均不相同,这点与其他编程语言不相同。

例子:

int[][] num;
num = new int[3][];
num[0] = new int[4];
num[1] = new int[3];
num[2] = new int[5];

静态初始化

int[][] num = {
    {33, 45, 56, 76},
    {22, 13, 69},
    {89, 10, 53, 47, 73}
};

内存分布图:

Java二维数组1.png

那么我们如何取得二维数组的行数与特定行的元素个数呢?

其实非常简单,使用length静态属性就可以获得

使用格式:

num.length //取得num数组的行数
num[0].length //取得num数组第一行的元素个数

例子:

public class Text1 {
    public static void main(String[] args) {
        //创建一个二维数组num,大小为5
        int[][] num = {
                {33, 45, 56, 76},
                {22, 13, 69},
                {89, 10, 53, 47, 73}
        };
        //遍历二维数组
        System.out.println("数组num包含的元素:");
        for (int i = 0; i < num.length; i++) {
            for (int j = 0; j < num[i].length; j++) {
                System.out.print("num["+i+"]["+j+"] = "+num[i][j]+"   ");
            }
            System.out.println();
        }
    }
}

输出结果:

Java二维数组2.png

多维数组

在Java中要想提高数组的维数,只要在声明数组的时候将索引与中括号再加一组即可,所以三维数组的声明为int[][][] array,而四维数组为int[][][][] array... 以此类推。

以三维数组为例:

例子:

public class Text1 {
    public static void main(String[] args) {
        //创建一个二维数组num,大小为5
        int[][][] num = {
                { {23, 34}, {45, 56}},
                { {56, 89}, {12, 22}},
                { {89, 67}, {74, 33}}
        };
        //遍历三维数组
        System.out.println("数组num包含的元素:");
        for (int i = 0; i < num.length; i++) {
            for (int j = 0; j < num[i].length; j++) {
                for (int k = 0; k < num[i][j].length; k++) {
                    System.out.print("num["+i+"]["+j+"]["+k+"] = "+num[i][j][k]+"   ");
                }
                System.out.println();
            }
            System.out.println();
        }
    }
}

输出结果:

Java二维数组3.png

代码中num数组是一个有3行2列高为2的三维数组,因为是三维数组,所以嵌套for循环有3层。

总结

  • 二维数组在编程时会经常用到,需要掌握如何声明和定义以及初始化一个二维数组,还有二维数组的遍历方法
  • 在Java中二维数组与其他编程语言不相同,它的每一行的元素个数可以不相等

好了,今天阿文就介绍到这里... byebye!