Java中的多维数组
时间:2019-04-29 03:17:55 来源:igfitidea点击:
在本文中,我们将了解什么是多维数组以及如何定义多维数组。
最常见的多维数组是矩阵-二维数组。
二维数组就像一个表,而矩阵在Java中是一个数组的数组
如何定义多维数组
在Java中定义二维数组的语法:
base_type[][] matrix_name; base_type matrix_name[][]; // C/C++风格
注意根据定义,matrix_name是引用类型(指针)的未初始化变量,默认值为null。null是一个Java关键字,表示一个不存在的地址,其值等于0。
// 定义一个二维数组 // Java 推荐的语法 int[][] matrixExample1; // C C++ 风格语法 long matrixExample2[][];
还可以定义三维数组,如立方体cube:
// 定义一个三维数组 int[][][] cube;
如何在Java中初始化多维数组
因为它们是对象,多维数组值存储在堆中(具有动态分配的RAM内存区域,在该区域中进程可以在运行时保留空间)。
有两种方法可以在Java中初始化多维数组:
一次初始化整个多维数组的空间;
初始化至少第一个维度(数组的最高有效维度)的大小;之后,在单独的操作中,初始化低有效维度;
在第一种方法中,使用单个 new指令创建并初始化整个多维数组(使用默认值):
//定义3行3列的矩阵(数组) int[][] matrix3x3; // 创建 matrix3x3 = new int[3][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.