最新公告
  • 欢迎您光临极客文库,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • 包含方法

    我们需要查找在这些元素中是否包含某个元素,这种情况下,我们就需要设置一个接口,代码如下:

    // 查找数组中是否有元素e
    public boolean contains(int e){
        for(int i = 0 ; i < size ; i ++){
            if(data[i] == e)
                return true;
        }
        return false;
    }
    

    寻找方法

    在有些时候,可能我们不仅仅想查看数组中是否包含某个元素,还想具体看一下如果存在这个元素,这个元素对应的索引是多少?那么我们就可以编写一个find方法,代码如下:

    // 查找数组中元素e所在的索引,如果不存在元素e,则返回-1
    public int find(int e){
        for(int i = 0 ; i < size ; i ++){
            if(data[i] == e)
                return i;
        }
        return -1;
    }
    

    如何从数组中删除元素

    如果我们想从下面的数组中删除索引为1的元素,该怎么做呢?

    其实删除就是插入的一个反向过程,我们把要删除的这个索引之后的所有元素都向左移,将待删除的元素给挤走就好了,那具体该怎么做呢?

    假设现在要删除索引为1的元素,将索引为2的元素移动(赋值)到索引为1的元素中

    然后让索引为2的元素等于索引为3的元素

    同理,100也赋值到索引为3的位置,此时data[5]已经没有元素了

    最后,我们数组中已经少了一个元素,此时size–,指向第一个没有元素的位置。

    代码演示

    // 从数组中删除index位置的元素, 返回删除的元素
    public int remove(int index){
        if(index < 0 || index >= size)
            throw new IllegalArgumentException("Remove failed. Index is illegal.");
    
        int ret = data[index];
        for(int i = index + 1 ; i < size ; i ++)
            data[i - 1] = data[i];
        size --;
        return ret;
    }
    

    完成了这个remove方法后,我们还可以接着创建一些快捷的方法。

    // 从数组中删除第一个元素, 返回删除的元素
    public int removeFirst(){
        return remove(0);
    }
    
    // 从数组中删除最后一个元素, 返回删除的元素
    public int removeLast(){
        return remove(size - 1);
    }
    
    // 从数组中删除元素e
    public void removeElement(int e){
        int index = find(e);
        if(index != -1)
            remove(index);
    }
    

    测试一下本小节内容

    简单测试一下上面实现的remove方式

    public class Main {
    
        public static void main(String[] args) {
    
            Array arr = new Array(20);
            for(int i = 0 ; i < 10 ; i ++)
                arr.addLast(i);
            System.out.println(arr);
    
            arr.add(1, 100);
            System.out.println(arr);
    
            arr.addFirst(-1);
            System.out.println(arr);
            // [-1, 0, 100, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    
            arr.remove(2);
            System.out.println(arr);
    
            arr.removeElement(4);
            System.out.println(arr);
    
            arr.removeFirst();
            System.out.println(arr);
        }
    }
    

    运行程序,请观察并分析结果:

    源码下载

    [dm href=’https://www.jikewenku.com/product/1487.html’]下载地址[/dm]

    导航目录

    [dm href=’https://www.jikewenku.com/geeknote/2241.html’]查看导航[/dm]

    本站所有文章均由网友分享,仅用于参考学习用,请勿直接转载,如有侵权,请联系网站客服删除相关文章。若由于商用引起版权纠纷,一切责任均由使用者承担
    极客文库 » 数据结构笔记总结(1.5)添加包含,搜索和删除方法

    常见问题FAQ

    如果资源链接失效了怎么办?
    本站用户分享的所有资源都有自动备份机制,如果资源链接失效,请联系本站客服QQ:2580505920更新资源地址。
    如果用户分享的资源与描述不符怎么办?
    可以联系客服QQ:2580505920,如果要求合理可以安排退款或者退赞助积分。
    如何分享个人资源获取赞助积分或其他奖励?
    本站用户可以分享自己的资源,但是必须保证资源没有侵权行为。点击个人中心,根据操作填写并上传即可。资源所获收益完全归属上传者,每周可申请提现一次。
    如果您发现了本资源有侵权行为怎么办?
    及时联系客服QQ:2580505920,核实予以删除。

    Leave a Reply

    Hi, 如果你对这款资源有疑问,可以跟我联系哦!

    联系发布者

    Leave a Reply

    Hi, 如果你对这款资源有疑问,可以跟我联系哦!

    联系发布者
    • 101会员总数(位)
    • 3672资源总数(个)
    • 0本周发布(个)
    • 0 今日发布(个)
    • 124稳定运行(天)

    欢迎加入「极客文库」,成为原创作者从这里开始!

    立即加入 了解更多
    成为赞助用户享有更多特权立即升级