4_数组及其应用
一维数组的基本概念
- 当需要在Java程序中记录单个数据内容是,声明一个变量即可。
- 当需要在Java程序中记录多个类型相同的数据内容是,声明一个一维数组即可,一维数组本质上就是在内存空间中申请一段连续的存储单元。
- 数组是相同数据类型的多个元素的容器,元素按线性顺序排列,在Java语言中体现为一种引用数据类型。
一维数组的声明方式
//声明变量的语法格式:
int num = 89;
//声明数组的语法格式:
int[] arr = new int[5];
/*一维数组相关概念:
数组名 - 用于记录一维数组在内存空间中的地址信息,便于下次访问。
数组元素 - 主要指存放在数组中的数据内容,如:100、59、98等。
数组长度 - 主要指数组中最多可以存放的元素个数,通常使用 数组名.length 获取。
数组下标 - 主要指数组元素在数组中的编号,从0开始可以取到 长度-1 。
*/
/*注意:
Java声明一个数组,会在堆区里面开辟一个存放数组数据的空间,该空间对应有一个内存地址,还会在栈区里面存放数组名字,该名字指向的就是数组的内存地址。因此我们直接打印数组,得到的结果是一个内存地址。
*/
数组的优缺点
- 可以直接通过下标(或索引)的方式访问指定位置的元素,速度很快。
- 数组要求所有元素的类型相同。
- 数组要求内存空间连续,并且长度一旦确定就不能修改。
- 增加和删除元素时可能移动大量元素,效率低。
关于数组的操作方法
一维数组之间元素的拷贝
System.arraycopy(arr, 1, brr, 0, 3) //将arr中下标从1开始的3元素拷贝到brr中下标从0开始的位置
Arrays.toString(arr) //打印数组arr中的所有元素
Arrays.fill(arr, 10) //给元素arr中所有元素填充为整数10
Arrays.equals(arr1, arr2) //判断数组arr1和arr2是否完全相同(包括内容和次序)
Arrays.sort(arr) //对数组arr中的元素进行从小到大排序
Arrays.binarySearch(arr, 9) //从数组arr中查找指定元素9所在的位置