Java 手动实现ArrayList


/**
 * @author NotAfraidYfl 自定义面向对象的数组
 */
public class MyArray {

    // 用于存储数据的数组
    private Object[] elements;

    // 定义一个构造方法
    public MyArray() {
        elements = new Object[0];
    }

    // 获取数组长度的方法
    public int size() {
        return elements.length;
    }

    // 数组添加元素的方法

    public void add(Object obj) {
        Object[] newArr = new Object[elements.length + 1];

        for (int i = 0; i < elements.length; i++) {
            newArr[i] = elements[i];
        }
        newArr[elements.length] = obj;
        // 新数组赋值给旧数组
        elements = newArr;
    }

    // 打印数组元素到控制台
    public void show() {
        System.out.println("myArr=" + Arrays.toString(elements));
    }

    // 删除元素的方式

    public void delete(int index) throws Exception {
        // 判断数组
        if (index < 0 || index > elements.length - 1) {
            throw new Exception("error");
        }
        Object[] newArr = new Object[elements.length - 1];
        // 遍历新数组把旧数组的值赋给新数组(避免多层循环)
        for (int i = 0; i < newArr.length; i++) {
            if (i < index) {
                newArr[i] = elements[i];
            } else {
                newArr[i] = elements[i + 1];
            }
        }

        // 新数组赋值给旧数组
        elements = newArr;
    }

    // 插入元素到指定的位置
    public void insert(Object ele, int index) throws Exception {
        // 判断数组
        if (index < 0 || index > elements.length - 1) {
            throw new Exception("插入下标越界");
        }
        Object[] newArr = new Object[elements.length + 1];

    }

}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容