前置条件: elements 是 数组的长度。
增:
public void insert(long value) { arr[elements++] = value; }
其中elements 在这个 类 初始化 是 0 而且 前提是 arr 是有不是null,不然空指针异常。
顺序查找:
1.顺序查找,,根据值查找 返回下标:
/** * 查找数据 */ public int search(long value) { int i; for(i = 0; i < elements; i++) { if(value == arr[i]) { break; } } if(i == elements) { //没找到 return -1; } else { //找到返回i return i; } }
2,顺序查找 , 根据下标查找 返回值:
public long getValue(int index){ if (index >= elements || elements < 0){ throw new ArrayIndexOutOfBoundsException(); }else{ return arr[index]; } }
3. 二分法查找,根据 值 查找,返回 下标:
注意! 二分法仅适用于 有序数组【递增 、 递减】,下面是递增版。 【 一般考试那些教材 都写明一定得是 递增 】
二分法 - 有序递增
删:
1.根据index 删
思路: index 以后的 都 = arr[index + 1],,
public void delete(int index) { if (index >= elements || index < 0) { throw new ArrayIndexOutOfBoundsException(); } else { for (int i = index; i < elements; i++) { arr[index] = arr[index + 1]; } elements--; } }
改:
根据下标更新数据:
思路: arr[下标] = newValue
/** * 更新数据 */ public void change(int index, int newvalue) { if (index >= elements || index < 0) { throw new ArrayIndexOutOfBoundsException(); } else { arr[index] = newvalue; } } }