Dotcpp  >  编程教程  >  Java数组  >  Java不规则数组

Java不规则数组

点击打开在线编译器,边学边练

通过上一节的学习,我们知道了Java中没有多维数组这个概念,只有一维数组,我们可以把多维数组理解为数组的数组,所以就会衍生出一种不规则数组


举个例子,规则的4×3二维数组有12个元素,但是不规则的4×3二维数组就不一定有多少个元素。例如,静态初始化一个不规则数组:

int Array[][] = {{1,2},{3},{4,5,6},{7,8}};


我们把二维及二维以上的数组称为高维数组,那么上面这个高维数组有4个元素,但是低维数组元素个数不一样,其中第1个数组有2个元素,第2个数组有1个元素,第3个数组有3个元素,第4个数组有2个元素,这就是我们所说的不规则数组。


动态初始化一个不规则数组要麻烦一点,它不可以直接使用new int[4][3]语句,我们要先初始化高维数组,之后再分别初始化低维数组,例如:

int Array[][] = new int[4][]; //先初始化高维数组为4
Array[0] = new int[2]; //逐一初始化低维数组
Array[1] = new int[1];
Array[2] = new int[3];
Array[3] = new int[2];


那么上述代码初始化数组完成以后,我们可以知道并没有12个元素,而是只有8个元素,其中下标为[0][2]、[1][1]、[1][2]和[3][2]是不存在的,当我们试图访问它们的时候,就会抛出下标越界异常


注意:下标越界异常(ArrayIndexOutOfBoundsException)是试图访问不存在的下标时引发的。比如,假设一个一维数组Array有12个元素,那么表达式Array[12]就会发生下标越界异常,这是因为数组下标是从0开始的,最后一个元素下标应该是数组长度减1,所以Array[12]访问的元素是不存在的。



本文固定URL:https://www.dotcpp.com/course/888

上一课:

Java多维数组

下一课:

Java Arrays类

Java教程
第一章 Java入门
第二章 Java运算符和表达式
第三章 Java流程控制
第四章 Java类和对象
第五章 Java子类与继承
第六章 Java接口与实现
第七章 Java内部类与异常类
第八章 Java常用实用类
第九章 Java输入输出流
第十章 Java数组
Dotcpp在线编译      (登录可减少运行等待时间)