数组是最常用的数据结构,整体上可以分为两类:有序数组和无序数组。
1. Java中数组基础知识
1.1 创建数组
在Java中有两种类型,基本类型和对象类型,在Java中数组被当做对象类型。
int[] arr = new int[10];
1.2 访问数组的数据
int temp = arr[0];
1.3 初始化
// 1.
int[] arr = new int[] {1, 2, 3};
// 2.
int[] arr = { 1, 2, 3 };
2. 有序数组
有序数组的最大好处是方便以二分查找的方式对数组进行多次查找。这里的有序数组通常不包含重复元素。二分查找,把握住left,right,mid即可。不断改变left或者right来减小搜索空间。
public int binarySearch(int[] arr, int number) {
int left = 0;
int right = arr.length - 1;
if (number < arr[left] || number > arr[right]) {
return -1;
}
while (left <= right) {
int mid = (left + right) / 2;
if (arr[mid] == number) {
return mid;
}
if (arr[mid] < number) {
left = mid + 1;
}
if (arr[mid] > number) {
right = mid - 1;
}
}
return -1;
}
3. 数组的优缺点
1)大小固定,不够灵活
2)插入困难,需要移动后面所有的数据
3)查询快