一、数组的概述
数组本身是引用数据类型,而数组中的元素可以是任何数据类型,包括 基本数据类型和引用数据类型。
数组的长度一旦确定,就不能修改。
连续空间
二、一维数组
1.声明
- 一维数组的声明方式:
- type var[] 或 type[] var;
- Java语言中声明数组时不能指定其长度(数组中元素的数), 例如: int a[5]; //非法
2.初始化
- 动态初始化:数组声明且为数组元素分配空间与赋值的操作分开进行
int[] arr = new int[3];
arr[0] = 3;
arr[1] = 9;
arr[2] = 8;
- 静态初始化:在定义数组的同时就为数组元素分配空间并赋值。
int arr1[] = new int[]{ 3, 9, 8};
String names[] = {"李四光","茅以升","华罗庚"};
3.数组元素的引用
4.数组元素的默认初始化值
基本数据类型数组在显式赋值之前, Java会自动给他们赋默认值。
5.内存的简化结构
三、多维数组的使用
四、数组中涉及到的常见算法
- 数组元素的赋值(杨辉三角、回形数等)
- 求数值型数组中元素的最大值、最小值、平均数、总和等
- 数组的复制、反转、查找(线性查找、二分法查找)
- 数组元素的排序算法
1.衡量排序算法的优劣:
- 时间复杂度:分析关键字的比较次数和记录的移动次数
- 空间复杂度:分析排序算法中需要多少辅助内存
- 稳定性:若两个记录A和B的关键字值相等,但排序后A、B的先后次序保 持不变,则称这种排序算法是稳定的。
2.十大内部排序算法
五、Arrays工具类的使用
java.util.Arrays类即为操作数组的工具类,包含了用来操作数组(比 如排序和搜索)的各种方法。
import java.util.Arrays;
public static void main(String[] args) {
int[] arr = new int[3];
arr[0] = 3;
arr[1] = 9;
arr[2] = 8;
int arr1[] = new int[]{ 3, 9, 8};
String names[] = {"李四光","茅以升","华罗庚"};
//判断相等
if (Arrays.equals(arr1,arr)) {
System.out.println("数组工具类判断相等");
}
//排序
Arrays.sort(arr);
//对排序后的数组进行二分法检索指定的值。未排序的不行
int i = Arrays.binarySearch(arr, 8);
System.out.println("排序后的数组进行二分法检索指定的值。" + i);
//转换字符串
System.out.println("排序arr: " + Arrays.toString(arr));
//将指定值填充到数组之中。
Arrays.fill(names,"666");
System.out.println("将指定值填充到数组之中输出 : " + Arrays.toString(names));
}
六、数组使用中的常见异常
注意: 编译时不报错!!!
数组脚标越界异常(ArrayIndexOutOfBoundsException)
空指针异常(NullPointerException)
标签:arr,int,元素,Arrays,数组,排序 From: https://blog.51cto.com/u_15227402/5965037