关于java:数组的末尾添加替换删除任意位置插入获取

43次阅读

共计 2075 个字符,预计需要花费 6 分钟才能阅读完成。

数组的开端增加、替换、删除、任意地位插入、获取

数组类

import java.util.Arrays;

/**
 * @author 23105
 * @version 1.0
 * @description: TODO
 * @date 1/4/2023 下午 6:21
 */
public class ArrayCollection {
    // 用于存储数组的数据
    private int[] arr;
    // 申明一个结构器
    public ArrayCollection(){
        // 先初始化数组长度为 0
        arr = new int[0];
    }
    // 打印数组
    public void show(){System.out.println(Arrays.toString(arr));
    }
    // 给数组开端增加一个新元素
    public void addEle(int ele){
        // 新建一个新数组, 将旧数组的长度 +1
        int[] arrNew = new int[arr.length + 1];
        // 遍历旧数组复制给新数组
        for (int i = 0; i < arr.length; i++) {arrNew[i] = arr[i];
        }
        // 将新增加的 ele 元素给新数组的最初一位
        arrNew[arr.length] = ele;
        // 再将新数组 arrNew 赋值给旧数组 arr
        arr = arrNew;
    }
    // 删除数组元素
    public void delete(int index){
        // 新建一个数组
        int[] arrNew = new int[arr.length - 1];
        // 先判断数组的索引是否越界
        if (index < 0 || index > arr.length - 1) {throw new RuntimeException("数组下标越界");
        }
        // 遍历新数组,将旧数组 arr 复制给新数组 arrNew
        for (int i = 0; i < arrNew.length; i++) {if (index > i){
                // 如果索引 index 大于 i,失常赋值
                arrNew[i] = arr[i];
            }else {
                // 如果索引 index 小于 i,将索引 i +1,赋值给新数组
                arrNew[i] = arr[i + 1];
            }
        }
        // 再把新数组 arrNew 从新赋值给旧数组 arr
        arr = arrNew;
    }
    // 获取数组某个地位的元素
    public int get(int index){return arr[index];
    }
    // 向数组任意地位插入一个元素
    public void insertEle(int index,int ele){
        // 先判断数组的索引是否越界
        if (index < 0 || index > arr.length - 1) {throw new RuntimeException("数组下标越界");
        }
        // 新建一个数组
        int[] arrNew = new int[arr.length + 1];
        for (int i = 0; i < arr.length; i++) {if (index > i){arrNew[i] = arr[i];
            }else {arrNew[i + 1] = arr[i];
            }
        }
        // 向 index 地位插入 ele 元素
        arrNew[index] = ele;
        // 将新数组赋值 arrNew 给旧数组 arr
        arr = arrNew;
    }


    // 替换指定地位的元素
    public int replaceEle(int index,int ele){
        // 判断 index 地位是否非法
        // 先判断数组的索引是否越界
        if (index < 0 || index > arr.length - 1) {throw new RuntimeException("数组下标越界");
        }
        return arr[index] = ele;
    }
}
** 测试与截图 **

/**

  • @author 23105
  • @version 1.0
  • @description: TODO
  • @date 1/4/2023 下午 6:29
    */

public class TestArrayCollection {

public static void main(String[] args) {ArrayCollection ac = new ArrayCollection();
    // 原数组
    System.out.println("原数组");
    ac.show();
    // 增加新数组
    ac.addEle(3);
    ac.addEle(6);
    ac.addEle(9);
    ac.addEle(12);
    ac.addEle(16);
    // 增加后的数组
    System.out.println("增加后的数组");
    ac.show();
    // 删除数组中一个元素
    ac.delete(2);
    // 删除后的数组
    System.out.println("删除后的数组");
    ac.show();

    // 向任意地位插入一个元素
    ac.insertEle(3,999);
    ac.insertEle(3,99999);
    // 插入后的数组
    System.out.println("插入后的数组");
    ac.show();

    // 替换 3 地位的元素为 520
    ac.replaceEle(3,520);
    // 替换后的数组
    System.out.println("替换后的数组");
    ac.show();}

}

** 测试截图 **
![QQ 图片 20230402203828.jpg](/img/bVc7aNI)

正文完
 0