Java 算法 — 数组的增删改查

前置条件: 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;
        }
    }
}

 

posted @ 2021-11-05 22:51  咸瑜  阅读(388)  评论(0编辑  收藏  举报