int[] data = new int[100];data[0] = 1;
int[][] data2 = new int[100][100]; data[0][0] = 1;
- 数组是最简单、也是使用最广泛的数据结构。栈、队列等其他数据结构均由数组演变而来。
- 数组分为1维数组和多维数组
- 数组是定长的,如果取数组时超出了长度,则会报错
- 数组常见面试题
- 寻找数组中第二小的元素
private static int findTheMinimumButOne(int[] arr) {
if (arr.length <= 1) {
throw new RuntimeException("要找倒数第二小的数,最少要有两个元素!");
}
int minimumOne;
int minimumButOne;
if (arr[0] < arr[1]) {
minimumOne = arr[0];
minimumButOne = arr[1];
} else {
minimumOne = arr[1];
minimumButOne = arr[0];
}
for (int i = 2; i < arr.length; i++) {
int one = arr[i];
if (one < minimumOne) {
minimumButOne = minimumOne;
minimumOne = one;
} else if (one < minimumButOne && one != minimumOne) {
minimumButOne = one;
}
}
return minimumButOne;
}
- 合并两个有序数组
private static int[] mergeTwoSortedArr(int[] arr1, int[] arr2) {
int[] arr = new int[arr1.length + arr2.length];
int arr1Index = 0;
int arr2Index = 0;
for (int i = 0; i < arr.length; i++) {
if (arr1Index >= arr1.length) {
arr[i] = arr2[arr2Index];
arr2Index++;
continue;
}
if (arr2Index >= arr2.length) {
arr[i] = arr1[arr1Index];
arr1Index++;
continue;
}
int i1 = arr1[arr1Index];
int i2 = arr2[arr2Index];
if (i1 < i2) {
arr[i] = i1;
arr1Index++;
} else {
arr[i] = i2;
arr2Index++;
}
}
return arr;
}