1.数组的概念
数组是线性表最基本的结构,特点是元素是一个紧密在一起的序列,相互之间不需要记录彼此的关系就能访问
数组用索引的数字来标识每项数据在数组中的位置,且在大多数编程语言中,索引是从 0 算起的。我们可以根据数组中的索引快速访问数组中的元素。
数组有两个需要注意的点,一个是从0开始记录,也就是第一个存元素的位置是a[0],最后一个是a[length-1]。其次,数组中的元素在内存中是连续存储的,且每个元素占用相同大小的内存。
2.数组基本操作
2.1数组的初始化
int[] arr = new int[10];
// 赋值方式
for(int i = 0 ; i < arr.length ; i ++)
arr[i] = i;
int[] arr = new int[]{0,1,2,3,5,6,8};
int[] nums = {2, 5, 0, 4, 6, -10};
2.2查找一个元素
/**
* @param size 已经存放的元素个数
* @param key 待查找的元素
*/
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;
}
2.3 增加一个元素
/**
* @param arr
* @param size 数组已经存储的元素数量,从1开始编号
* @param element 待插入的元素
* @return
*/
public static int addByElementSequence(int[] arr, int size, int element) {
if (size >= arr.length){
retrun -1;
}
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];
}
arr[index] = element;
return index;
}
2.4删除一个元素
/**
* 从数组中删除元素key
* @param arr 数组
* @param size 数组中的元素个数,从1开始
* @param key 删除的目标值
*/
public 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;
}