数组的扩容
第一种:每次固定扩充数量,可称为线性增长。特点:节省空间,但是扩充操作频繁,操作次数多。
·第二种:每次扩充容量加倍,特点:减少了扩充操作的执行次数,但可能会浪费空间资源。以空间换时间,推荐的方式。
数组的初始化
int[]arr=new int[]{0,1,2,3,5,6,8y;
//这么写也行:
int[]nums={2,5,0,4,6,-10};
查找一个元素
public static int findByElement(int[] arr, int size, int key) {
for (int i = 0; i < size; i++) {
if (arr[i] == key) {
return i;
}
}
return -1;
}
增加一个元素
public static int addByElementSequence(int[] arr, int size, int element) {
//size和arr.length都表示元素的数量,都是从1开始编号
if (size >= arr.length) {
throw new IllegalArgumentException("Add failed. Array is full.");
}
int index = size;
//找到新元素的插入位置
for (int i = 0; i < size; i++) {
if (element < arr[i]) {
index = i;
break;
}
}
//元素后移
for (int j = size; j > index; j--) {
arr[j] = arr[j - 1]; //index下标开始的元素后移一个位置
}
arr[index] = element;//插入数据
return index;
}
删除一个元素
public static int removeByElement(int[] arr, int size, int key) {
int index = -1;
for (int i = 0; i < size; i++) {
if (arr[i] == key) {
index = i;
break;
}
}
if (index != -1) {
for (int i = index + 1; i < size; i++)
arr[i - 1] = arr[i];
size--;
}
return size;
}