本人已参与「新人创作礼」活动,一起开启掘金创作之路。
持续创作,加速成长!这是我参与「掘金日新计划 · 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}
};
内存分布图:
那么我们如何取得二维数组的行数与特定行的元素个数呢?
其实非常简单,使用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中要想提高数组的维数,只要在声明数组的时候将索引与中括号再加一组即可,所以三维数组的声明为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();
}
}
}
输出结果:
代码中num数组是一个有3行2列高为2的三维数组,因为是三维数组,所以嵌套for循环有3层。
总结
- 二维数组在编程时会经常用到,需要掌握如何声明和定义以及初始化一个二维数组,还有二维数组的遍历方法
- 在Java中二维数组与其他编程语言不相同,它的每一行的元素个数可以
不相等
好了,今天阿文就介绍到这里... byebye!