数据结构入门——大师:Array(二)

上面一篇文章对我们的数组类进行add方法的操作,现在我们看看其删除,修改,查询的操作

1.查询

/**
     * 获取index的元素
     * @param index 索引
     * @return
     */
    public int get(int index){
        if(index < 0 || index >= size){
            throw new IllegalArgumentException("error index");
        }
        //data进行隐藏,用户只能用data[index]的值而获取不到这个数组data
        //好处,对用户传来的index进行判断
        return data[index];
    }

只要返回对应的index值即可,因此查询效率特别快

2.修改

   /**
     * 修改index处元素
     * @param index 索引
     * @param e 元素
     */
    public void set(int index, int e){
        if(index < 0 || index >= size){
            throw new IllegalArgumentException("error index");
        }
        data[index] = e;
    }


只要对应index赋值即可完成修改,因此修改的效率特别快

3.删除

/**
     * 删除指定index的元素
     * @param index 索引
     * @return 删除的了元素,给用户所用
     */
    public int remove(int index){
        if(index < 0 || index >= size){
         
            throw new IllegalArgumentException("error index");
        }
        //删除的元素 ret
        int ret = data[index];
        for (int i = index + 1; i <size ; i++){
            data[i - 1] = data[i];
        }
        size --;
        return ret;

    }

这里的删除操作也就是从 index + 1到size -1 内 所有的值都往前赋值以为即可

4.数组动态扩容

 /**
     * 数组扩容
     * @param newCapacity 扩容的容量
     */
    private void resize(int newCapacity){
        E[] newData = (E[])new Object[newCapacity];
        //遍历原来数组 将值赋值给新数组
        for(int i = 0 ; i < size; i++){
            newData[i] = data[i];
        }
        //将新数组赋值给data
        data = newData;
    }

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容