五、数组
一、 数组的概述
1.数组
数组是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。
2.数组的特点
- 数组属于引用类型的变量。数组的元素,既可以是基本数据类型,也可以是引用数据类型。
- 创建数组对象会在内存中开辟一整块连续的空间;
- 数组的长度一旦确定,长度就不能修改;
- 数组是有序排列的。
- 数组变量属于引用类型,数组也可以看作对象,其中每个元素相当于该对象的成员变量。
- 数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组本身是在堆中的。
二、 一维数组的使用
2.1 声明
数据类型[ ] 数组名;
2.2 初始化
数据类型[ ] 数组名 = new 数据类型[元素个数];
int[] arr = new int[10];
数据类型[ ] 数组名 = new int[]{1,1,1};
int[] arr =new int[] {1,1,1}
数据类型[ ] 数组名 = {数组元素,数组元素};
int[] arr = {1,1,1}
2.3、内存的简化结构
2.4、一维数组的内存解析
数组名是通过存放在栈里的存放数据堆地址去堆地地址操作数组的
三、 多维数组的使用
3.1、二位数组
格式一:元素的数据类型[][] 数组的名字 = new 元素的数据类型[二维数组的长度][一维数组的长度];
int[][] arr = new int[3][2];
格式二:元素的数据类型[][] 数组的名字 = new 元素的数据类型[二维数组的长度][];
int[][] arr = new int[3][];
格式三:元素的数据类型[][] 数组的名字 = {{元素1,元素2,...}, {元素1,元素2,...}, ...};
int[][] arr = {{1,2,3}, {4,5}, {5,6,7,8}};
3.2、二维数组的内存解析
四、 数组中涉及到的常见算法
4.1、数组元素的赋值
4.2、数组元素的基本操作
4.3、数组元素的基本操作 2
4.4、数组的复制、反转、查找
五、 Arrays 工具类的使用
六、 数组使用中的常见异常
四、 Arrays 数组工具类
- Arrays.toString(数组) 把数组数据连接成字符串。
- Arrays.sort(数组) 数组排序 基本类型:优化的快速排序;引用类型:优化的合并排序。
- Arrays.binarySearch(数组,目标值) 二分法查找,在有序数组中查找目标值下标,找不到返回 -(插入点+1)。
- Arrays.copyof(数组,长度) 复制数组成一个指定长度的新数组。
- System.arraycopy(原数组,原数组起始位置,目标数组,目标数组起始位置,复制的数量) ——不会创建新的数组,目标数组要事先存在