数组的末尾添加、替换、删除、任意位置插入、获取

数组类

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)

辉辉
1 声望0 粉丝