浅谈数组

数组是存储相同数据类型变量的容器。有了数组,我们可以很方便定义多个相同数据类型的变量,而不需要使用int 变量名的形式来定义。
数组有一维数组、二维数组、 . . . 、n维数组。但我们常用的是一维数组和二维数组。

一维数组

数组定义格式:
格式一:数组类型[] 数组名;
格式二:数组类型 数组名[];
推荐使用第一种格式来定义数组。

举例:
int[] a; 定义了一个数组名为a的数组
int a[]; 定义了一个数组名为a的数组

在Java中要使用数组,就需要先对数组进行初始化才可以。何为初始化?初始化就是对数组中的各个元素分配内存空间,同时为每个元素赋值。

数组的初始化有两种方式:

  • 动态初始化
  • 静态初始化

所谓动态初始化是我们在定义数组的时候,只给出数组的长度,由系统给数组赋初始值。
动态初始化的格式:
数组类型[] 数组名 = new 数组类型[数组长度];
所谓的数组长度就是数组中元素的个数。
举例:
int[] a = new int[10];
所谓静态初始化是在定义数组的时候,我们给数组赋初始值,但是数组的长度由系统给出。
静态初始化的格式:
数组类型[] 数组名 = new 数组类型[]{元素1,元素2,元素3,. . .};
简化格式为:
数组类型[] 数组名 = {元素1,元素2,. . .};

数组的访问

了解了数组如何进行初始化之后,我们就可以利用数组下标来访问数组了,即 数组名[下标];需要注意的是数组的下标是从0开始的,到数组长度-1结束。
举例:
int[] a = new int[3]; // 定义了一个长度为3的数组
a[1] = 3;
在这里插入图片描述
数组的遍历
在这里插入图片描述

但在访问数组的时候我们稍不注意就会遇到以下两个常见的问题:

  • ArrayIndexOutOfBoundsException:这个问题是数组索引越界异常。
    产生这个问题的原因就是访问了不存在的索引。
  • NullPointerException:这个问题是空指针异常。
  • 产生这个问题的原因是,在栈内存已经释放了指向在堆内存的数组指针,我们还要去访问这个数组的元素,其实是无法访问的。

二维数组

何为二维数组?
在了解掌握一维数组的基础上,二维数组很容易理解。二维数组就是每一个元素都是一维数组的数组。

二维数组的定义:

  • 数据类型[][] 数组名;

初始化二维数组的方式同样也分为动态初始化和静态初始化。
动态初始化:

  • 数组类型[][] 数组名 = new 数组类型[m][n];
    m表示的是这个二维数组有多少个一维数组
    n表示的是每个一维数组中有多少个元素
    简单理解:m是数组的行数,n是数组的列数
    举例:
    int[][]   array   =   new   int[3][4];
    该语句的意思是我们定义了一个3行4列的二维数组,数组名为array。在这个数组中有三个一维数组,每个一维数组中有四个元素。
    除此之外,我们还可以这样定义数组:
    数组类型 数组名[][] = new 数组类型[][];
    数组类型[] 数组名[] = new 数组类型[][];
    但是还是最好还是以 数组类型[][] 数组名 = new 数组类型[m][n]; 这样的方式定义数组。
    在这里插入图片描述

  • 数据类型[][] 数组名 = new 数据类型[m][];
    m表示的是这个二维数组有几个一维数组,即二维数组有几行,但是没有明确定义这个每个一维数组中有几个元素,即没有明确定义二维数组的列数,此时二维数组的列数可以动态给出。
    举例:
    int[][]  array  =  new   int[2][];
    定义了一个数组名为array的二维数组,其中有三个一维数组,没有明确定义每个一维数组的元素个数,此时元素个数可以动态给出。

静态初始化

  • 数据类型[][] 数组名 = new 数据类型[][]{{元素…},{元素…},{元素…}…};
    简单点写,可以写为:
    数据类型[][] 数组名 = {{元素…},{元素…},{元素…}…};
    这样的方式是直接给数组赋了初始值,数组的长度由系统给出。
    举例:
    在这里插入图片描述

定义了二维数组后,我们可以使用数组名[下标1][下标2] 来进行二维数组元素的访问。其中i代表的是二维数组的行数,范围为0到行数-1;j代表的是二维数组的列数,范围为0到列数-1。
二维数组元素的访问
在这里插入图片描述
二维数组的遍历
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章