二维数组

创建二维数组
在 Java 中二维数组被看作数组的数组,即二维数组为一个特殊的一维数组,其每个元素又
是一个一维数组。声明二维数组的语法如下:
type arrayName[][]; // 数据类型 数组名[][];

type[][] arrayName; // 数据类型[][] 数组名;
其中,type 表示二维数组的类型,arrayName 表示数组名称,第一个中括号表示行,第二
个中括号表示列。
下面分别声明 int 类型和 char 类型的数组,代码如下:
int[][] age;char[][] sex;
初始化二维数组
二维数组可以初始化,和一维数组一样,可以通过 3 种方式来指定元素的初始值。
这 3 种方式的语法如下:
type[][] arrayName = new type[][]{值 1,值 2,值 3,…,值 n}; // 在定义时初始化 type[][]
arrayName = new type[size1][size2]; // 给定空间,在赋值 type[][] arrayName = new
type[size][]; // 数组第二维长度为空,可变化
例 1
使用第一种方式声明 int 类型的二维数组,然后初始化该二维数组。代码如下:
int[][] temp = new int[][]{{1,2},{3,4}};
使用第二种方式声明 int 类型的二维数组,然后初始化该二维数组。代码如下:
int[][] temp = new int[2][2];
使用第三种方式声明 int 类型的二维数组,并且初始化数组。代码如下:
int[][] temp = new int[2][];
获取单个元素
在上部分使用的前 2 种方式创建并初始化了一个二行二列的 int 类型数组 temp。当需要获
取二维数组中元素的值时,也可以使用下标来表示。语法如下:
arrayName[i-1][j-1];
其中,arrayName 表示数组名称,i 表示数组的行数,j 表示数组的列数。例如,要获取第
二行第二列元素的值,应该使用 temp[1][1]来表示。这是由于数组的下标起始值为 0,因
此行和列的下标需要减 1。
例 2
通过下标获取 class_score 数组中第二行第二列元素的值与第四行第一列元素的值。代码如
下:
public static void main(String[] args) {
double[][] class_score = {{10.0,99,99},{100,98,97},{100,100,99.5},{99.5,99,98.5}};
System.out.println(“第二行第二列元素的值:”+class_score[1][1]);
System.out.println(“第四行第一列元素的值:”+class_score[3][0]);
}
执行上述代码,输出结果如下:
第二行第二列元素的值:98.0 第四行第一列元素的值:99.5
获取全部元素
在一维数组中直接使用数组的 length 属性获取数组元素的个数。而在二维数组中,直接使
用 length 属性获取的是数组的行数,在指定的索引后加上 length(如 array[0].length)表示
的是该行拥有多少个元素,即列数。
如果要获取二维数组中的全部元素,最简单、最常用的办法就是使用 for 语句。在一维数
组全部输出时,我们使用一层 for 循环,而二维数组要想全部输出,则使用嵌套 for 循环(
2 层 for 循环)。
例 3
使用 for 循环语句遍历 double 类型的 class_score 数组的元素,并输出每一行每一列元素的
值。代码如下:
public static void main(String[] args) { double[][] class_score = { { 100, 99, 99 }, { 100, 98, 97 }, {
100, 100, 99.5 }, { 99.5, 99, 98.5 } }; for (int i = 0; i < class_score.length; i++) { // 遍历行 for
(int j = 0; j < class_score[i].length; j++) { System.out.println(“class_score[” + i + “][” + j +
“]=” + class_score[i][j]); } }}
上述代码使用嵌套 for 循环语句输出二维数组。在输出二维数组时,第一个 for 循环语句表
示以行进行循环,第二个 for 循环语句表示以列进行循环,这样就实现了获取二维数组中
每个元素的值的功能。
执行上述代码,输出结果如下所示。
class_score[0][0]=100.0 class_score[0][1]=99.0 class_score[0][2]=99.0 class_score[1][0]=100.0
class_score[1][1]=98.0 class_score[1][2]=97.0 class_score[2][0]=100.0 class_score[2][1]=100.0
class_score[2][2]=99.5 class_score[3][0]=99.5 class_score[3][1]=99.0 class_score[3][2]=98.5

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值