Java中的多维数组

时间:2019-04-29 03:17:55  来源:igfitidea点击:

在本文中,我们将了解什么是多维数组以及如何定义多维数组。

最常见的多维数组是矩阵-二维数组。
二维数组就像一个表,而矩阵在Java中是一个数组的数组

如何定义多维数组

在Java中定义二维数组的语法:

base_type[][] matrix_name;
base_type matrix_name[][]; // C/C++风格

注意根据定义,matrix_name是引用类型(指针)的未初始化变量,默认值为nullnull是一个Java关键字,表示一个不存在的地址,其值等于0。

// 定义一个二维数组

// Java 推荐的语法

int[][] matrixExample1;

// C C++ 风格语法

long matrixExample2[][];

还可以定义三维数组,如立方体cube:

// 定义一个三维数组

int[][][] cube;

如何在Java中初始化多维数组

因为它们是对象,多维数组值存储在堆中(具有动态分配的RAM内存区域,在该区域中进程可以在运行时保留空间)。

有两种方法可以在Java中初始化多维数组:

  1. 一次初始化整个多维数组的空间;

  2. 初始化至少第一个维度(数组的最高有效维度)的大小;之后,在单独的操作中,初始化低有效维度;

在第一种方法中,使用单个 new指令创建并初始化整个多维数组(使用默认值):

//定义3行3列的矩阵(数组)

int[][] matrix3x3;

// 创建

matrix3x3 = new int[3][3];

在第二种方法中,多维数组(二维)按4个步骤初始化:

  1. 定义数组(矩阵的行);

  2. 为它预留空间;初始化第一个维度的大小

  3. 为每个存储值的数组保留空间(构造);因为每个数组都是单独处理的,所以可以设置不同的大小并创建一个锯齿形或锯齿形矩阵;

  4. 初始化的值(可选,因为在内存分配过程中,元素会得到与数组 基元数据类型相关联的默认值——对于基于数据类型检查和引用,默认值为 null

如何在Java中访问和处理多维数组

与简单数组的情况一样,对多维数组元素的访问是使用[]运算符完成的,但必须指明每个维度的索引。( 注意用于访问元素的索引需是每个维度的集合[0,length-1]中的值。

数组中的项数是通过访问其属性length来确定的(在Java中,数组是 array类型的对象)。

// 用值3初始化第一行元素

for(int j = 0; j < zigZag[0].length; j++)

    zigZag[0][j] = 3;

// 用10初始化第二行的第二个元素

zigZag[1][1] = 10;

// 计算所有元素的和

int sum = 0;

for(int i = 0; i < zigZag.length; i++)

    for(int j = 0; j < zigZag[i].length; j++)

        sum += zigZag[i][j];

System.out.println(sum);

注意如果访问数组的索引超出数组长度,会报错: ArrayIndexOutOfBoundsException.