数组
数组概述
一次性声明大量的用于存储数据的变量
要存储的数据通常都是同类型数据,例如:身高,体重等
什么是数组?
- 数组(array)是一种用于存储多个相同类型元素的数据结构。
- 它是一个连续的、固定大小的数据容器,可以存储基本类型(如整数、字符等)或其他对象。
数组的定义格式
①数据类型[ ] 变量名
范例: int[ ] arr
定义了一个int类型的数组,数组名是arr
②数据类型 变量名[ ]
范例:int arr[ ]
定义了一个int类型的变量,变量名是arr数组
一般使用第一种进行定义
在Java中,数组的声明和初始化类似于其他变量,但需要指定数组的类型和长度。以下是一个示例:
// 声明一个整数数组
int[] myArray;
// 初始化数组并分配内存空间
myArray = new int[5];
// 或者声明并初始化数组同时进行内存分配
int[] myArray = new int[5];
// 直接初始化数组,并自动分配内存空间
int[] myArray = {1, 2, 3, 4, 5};
数组的访问
数组元素的访问
-
数组变量访问方式
-
格式:数组名
-
数组内部保存的数据的访问方式
-
格式:数组名[索引]
索引是什么?
是数组中数据的编号方式
作用是什么?
访问数组中的数据使用,数据名[索引]等同于变量名,是一种特殊的变量名。
特征
①从0开始
②是连续的
③逐一增加,每次加1
要访问数组中的元素,可以使用索引(从0开始)来引用特定位置的元素。例如:
int[] myArray = {1, 2, 3, 4, 5};
System.out.println(myArray[0]);
// 输出:1
System.out.println(myArray[2]);
// 输出:3
数组还提供了一些方便的方法和属性来处理数据,比如获取数组长度 myArray.length,遍历数组等。
注意,在Java中,数组的大小是固定的,一旦分配了内存空间,就无法更改数组的长度。如果需要动态调整容量,可以使用ArrayList等动态数据结构。
数组初始化
静态初始化
初始化时指定每个数组元素的初始值,由系统决定数组长度
- 格式:数据类型[ ] 变量名=new 数据类型[ ]{数据1,数据2,数据3,…};
- 范例: int[ ] arr=new int[ ]{1,2,3}; //右边的int[ ]中[ ]不能写什么数字
简化格式:数据类型[ ] 变量名={数据1,数据2,数据3,…};
范例:int[ ] arr={1,2,3};
数组中常见的问题
索引越界
访问了数组中不存在的索引对应的元素,造成索引越界问题。
举个栗子
int[] arr=new int[3];
//输出元素
System.out.println(arr[3]);
此时索引3不存在,将会引起ArrayIndexOutOfBoundsException异常。
空指针异常
访问的数组已经不再指向堆内存的数据
举个栗子
int[] arr=new int[3];
System.out.println(arr[3]);
//把null赋值给数组
arr=null;
//输出元素
System.out.println(arr[0]);
此时地址变为null,没有指向int[3]的数组,将会引起NullpointerException异常。
数组常见操作
遍历
为什么要遍历呢?
举个栗子
int[] arr={11,22,33,44,55};
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
System.out.println(arr[3]);
System.out.println(arr[4]);
//通过for循环实现获取数据,索引0-4
for(int x=0;x<5;x++){
System.out.println(arr[x]);
}
由图可见
遍历数组是可以减少代码,轻松便捷
获取数组元素数量
- 格式:数组名.length
- 范例:arr.length
举个栗子
int[] arr={......};
for(int x=0;x<arr.length;x++){
System.out.println(arr[x]);
}
这样可以获取数组元素的数量,也是遍历的通用格式。