ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java 算法 — 数组的增删改查

2021-11-05 23:02:37  阅读:125  来源: 互联网

标签:index arr elements Java int 改查 查找 增删 public


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

 

标签:index,arr,elements,Java,int,改查,查找,增删,public
来源: https://www.cnblogs.com/bi-hu/p/15515584.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有