Java 数组( Array )

发布于:2022-10-27 ⋅ 阅读:(453) ⋅ 点赞:(0)

1. 数组定义

    (1)数组引入:如果每一个数据对应一个单独变量,会出现代码冗余,从而导致代码阅读性和维护性极差!同时针对于变量的操作相当的麻烦。

    (2)数组定义:多个相同类型数据元素按一定顺序排列的有限集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。

    (3)数组在生活中的例子:停车场

2.  Java 中定义数组的格式

    (1)格式:数据类型[] 数组名 = new 数据类型[ 数组长度 ];

    (2)数据类型:明确当前数组存储的数据类型,而且严格遵守数据类型一致化要求,有且只能存储目前数据类型。数组本身是引用数据类型,而数组中的元素可以是任何数据类型,包括基本数据类型和引用数据类型。

    (3)[]: 表明当前定义的类型为数组类型

    (4)数组名:当前数组数据的整体名称,对应当时数组空间内容。数组名是一个引用数据类型的变量

    (5)new:        

在内存的堆区,申请当前数组所需的内存空间,内存空间的计算方式是【数据类型 *  数组长度】,数组名中引用的是这块连续空间的首地址

new 关键字会清空申请内存空间中的所有残余数据内容,打扫卫生

清理数据:计算机为了降低对于硬件的损坏,所有使用硬件的程序,不会清理原本在硬盘、内存留有的数据内容,需要下一个使用者在使用之前打扫!

    (6)数组的长度:

每个数组都有一个属性 length 指明它的长度,例如:数组名.length 用来指明当前数组的长度(元素个数)

长度不可变性:数组一旦初始化,其长度是不可变的

3. 数组元素的引用

    (1)定义数组并用运算符 new 为之分配空间后,才可以引用数组中的每个元素;

    (2)数组元素的引用方式:数组名[数组元素下标]

    (3)数组元素下标可以是整型常量或整型表达式。如:a[3],b[i],c[6*i];

    (4)数组元素下标从 0 开始;数组的容量 - 1 结束,长度为 length 的数组合法下标取值范围: 0 ~ length-1;

如 int a[] = new int[3]; 可引用的数组元素为 a[0]、a[1]、a[2]

4. 数组元素的默认初始值

5. 数组内存分析图

6. 数组的分类

    (1)按照维度分:一维数组、二维数组、三维数组、…、n 维数组

    (2)按照元素的数据类型分:基本数据类型元素的数组、引用数据类型元素的数组 ( 即对象数组 )

7. Java 中定义一维数组的格式

    (1)格式:数据类型[ ] 数组名 = new 数据类型 [ 数组长度 ];

    (2)数组的声明:数据类型 数组名[ ];(不推荐)或 数据类型[ ] 数组名;(推荐)

    (3)Java 语言中声明数组时不能指定其长度 ( 数组中元素的个数 ),例如:int a[5]; //非法

8. 一维数组的初始化

    1)静态初始化:数组的初始化和数组元素的赋值操作同时进行

int[] ids = new int[]{1001,1002,1003,1004};

    2)动态初始化:数组的初始化和数组元素的赋值操作分开进行

String[] names = new String[5];

names[0] = "王";

9. Java 中定义二维数组的格式

    (1)格式:数据类型[][] 数组名 = new 类型[一维数组数量][每个一维数组的长度];

    (2)数组的声明:数据类型 数组名[ ];(不推荐)或 数据类型[ ] 数组名;(推荐)

    (3)Java 语言中声明数组时不能指定其长度 ( 数组中元素的个数 ),例如:int a[5]; //非法

10. 二维数组的初始化

    (1)格式1(动态初始化):数据类型[][] 数组名 = new 类型[一维数组数量][每个数组的长度];

例 1:String[][] arr = new String[3][2];

定义一个数组名为 arr 的二维数组,arr 中有 3 个一维数组,分别为 arr[0], arr[1], arr[2],每个一维数组中有 2 个元素。

给第一个一维数组下标为 1 位赋值为 78 写法是:arr[0][1] = 78;

例 2:String[][] arr = new String[3][];

定义一个数组名为 arr 的二维数组,arr 中有 3 个一维数组,每个一维数组都是默认初始化值 null ( 注意:区别于格式 1 ),可以对这个三个一维数组分别进行初始化:arr[0] = new int[3]; arr[1] = new int[1]; arr[2] = new int[2];

注:int[][]arr = new int[][3]; //非法

    (2)格式2(静态初始化):数据类型[][] arr = new 类型 [][]{ {3,8,2},{2,7},{9,0,1,6} };

定义一个名称为 arr 的二维数组,二维数组中有三个一维数组,每一个一维数组中具体元素也都已初始化。

第三个一维数组的长度表示方式:arr[2].length;

11. 特殊写法情况

    (1)数据类型 []x,y[]; x 是一维数组,y 是二维数组。

    (2)Java 中多维数组不必都是规则矩阵形式

 

本文含有隐藏内容,请 开通VIP 后查看

微信公众号

今日签到

点亮在社区的每一天
去签到