美文网首页Java 杂谈
一、用Array模拟简易版ArrayList的操作

一、用Array模拟简易版ArrayList的操作

作者: 编程界的小学生 | 来源:发表于2018-09-25 15:58 被阅读6次

一、源码

/**
 * @author TongWei.Chen 2018-09-21 13:26:26
 * @Description:
 * @Project sjjg-sf
 */
public class MyArray {

    // 数组
    private long[] arr;

    // 数组中有效数据的大小
    private int elems;

    // 构造器2个
    public MyArray() {
        arr = new long[10];
    }

    public MyArray(int size) {
        arr = new long[size];
    }

    // 插入数据
    public void add(long value) {
        arr[elems] = value;
        elems ++;
    }

    // 显示数据
    public void display() {
        for (int i = 0, size = arr.length; i <size; i ++) {
            System.out.println(arr[i]);
        }
    }

    // 查找数据
    public long get(int index) {
        return arr[index];
    }

    public int getIndex(long value) {
        for (int i = 0, size = arr.length; i < size; i ++) {
            if (arr[i] == value) {
                return i;
            }
        }
        return -1;
    }

    // 删除数据
    public void delete(int index) {
        for (int i = index; i < arr.length - 1; i ++) {
            // 也就是从删除位置开始,整体向前移动一位
            arr[i] = arr[i + 1];
        }
        // 将最后一个值变为默认值
        arr[arr.length - 1] = 0L;
        elems --;
    }

    // 更新数据
    public void update(int index, long value) {
        if (get(index) == 0) {
            throw new IndexOutOfBoundsException();
        }
        arr[index] = value;
    }

    public static void main(String[] args) {
        MyArray myArray = new MyArray();
        myArray.add(10L);
        myArray.add(20L);
        myArray.add(30L);
        myArray.add(40L);
        myArray.add(50L);
        myArray.add(60L);
        myArray.add(70L);
        myArray.add(80L);
        myArray.add(90L);
        myArray.add(100L);
        myArray.display();
        System.out.println(myArray.get(1));
        System.out.println(myArray.getIndex(20));
        System.out.println(myArray.getIndex(40));
        myArray.update(3, 50L);
        System.out.println(myArray.get(3));
        myArray.delete(4);
        System.out.println("................................");
        myArray.display();
        myArray.add(101L);
        System.out.println("................................");
        myArray.display();
    }
}

二、广告

相关文章

网友评论

    本文标题:一、用Array模拟简易版ArrayList的操作

    本文链接:https://www.haomeiwen.com/subject/fbjloftx.html