数据结构(数组)

发布时间:2024年01月20日

数组:存储一组类型相同的数据

在内存中分配连续的空间,数组创建时要制定容量

数据类型:? ?int[ ] arr=new int[ 10];

索引从0开始,

常见错误:NullPointException ArrayIndexOutOfBoundsException

常见数组:字符串,对象数组,哈希表

java中的数组可以进行二次封装,

向数组中删除元素:

 public int removeByIndex(int index) {
        if (index < 0 || index >= this.capacity) {
            throw new IllegalArgumentException("index is invalid.");
            //删除操作:
            // 找到删除位置,删除位置后的元素要前移 arr[j-1]=arr[j
        }
        for (int i = index + 1; i < this.size; i++) {
            this.data[i - 1] = this.data[i];
        }
        this.size--;
        return data[index];
    }
    /*1.向数组中添加元素,会出错(扩容)
     * 2.仙子阿只能处理int类型,如何处理多种类型(泛型)
     * 3.删除元素后,空间利用率低(缩容)
     * */

向数组中添加元素:

//向数组中添加元素
    public void add(int item) {
        //this.size 指的是元素的位置
        this.data[this.size] = item;
        this.size++;
    }
//向数组中指定位置添加
    public void addInIndex(int index,int val){
        if(index<0||index>this.size){
            throw new IllegalArgumentException("索引不存在");
        }
        //从index位置开始元素需要进行后移
    for(int i=this.size-1;i>=index;i--){
        this.data[i+1]=this.data[i];
        }
    this.size++;

    }

修改指定位置的值:

  //修改指定位置的值
    public int modifyValueByIndex(int index, int value) {
        //入参一定进行判断
        if (index < 0 || index >= this.capacity) {
            throw new IllegalArgumentException("index不存在");
        }
        return this.data[index];
    }

获取指定位置的值:

//获取指定位置的值
    public int getValueByIndex(int index) {
        if (index < 0 || index >= this.capacity) {
            throw new IllegalArgumentException("index is invalid.");

        }
        return this.data[index];
    }

动态数组:(可以缩容或者扩容)

文章来源:https://blog.csdn.net/2301_77405161/article/details/135682339
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。