📜  Java中的自定义 ArrayList(1)

📅  最后修改于: 2023-12-03 15:16:34.272000             🧑  作者: Mango

Java中的自定义 ArrayList

在Java中,ArrayList是一种常用的数据结构,它可以动态地存储元素,并且支持快速查找元素、添加元素、删除元素等操作。然而,在某些情况下,我们可能需要自定义一个ArrayList,以实现一些特殊的需求。本文介绍如何在Java中自定义一个ArrayList。

实现思路

自定义ArrayList需要实现以下几个关键方法:

  • add:添加元素到列表;
  • get:获取指定下标的元素;
  • remove:删除指定下标的元素;
  • size:获取列表中元素的数量。

在实现自定义ArrayList的过程中,我们需要使用数组来存储元素。

代码示例

下面是自定义ArrayList的示例代码:

public class MyArrayList<T> {

    private static final int DEFAULT_CAPACITY = 10;

    private int size;
    private Object[] elements;

    public MyArrayList() {
        elements = new Object[DEFAULT_CAPACITY];
    }

    public T get(int index) {
        if (index < 0 || index >= size) {
            throw new IndexOutOfBoundsException("Index: " + index + ", Size: " + size);
        }
        return (T) elements[index];
    }

    public T remove(int index) {
        if (index < 0 || index >= size) {
            throw new IndexOutOfBoundsException("Index: " + index + ", Size: " + size);
        }
        T removed = (T) elements[index];
        for (int i = index; i < size - 1; i++) {
            elements[i] = elements[i + 1];
        }
        size--;
        return removed;
    }

    public boolean add(T element) {
        if (size == elements.length) {
            grow();
        }
        elements[size++] = element;
        return true;
    }

    public int size() {
        return size;
    }

    private void grow() {
        int newCapacity = elements.length * 2;
        elements = Arrays.copyOf(elements, newCapacity);
    }
}
使用示例

下面是使用自定义ArrayList的示例代码:

MyArrayList<String> list = new MyArrayList<>();
list.add("A");
list.add("B");
list.add("C");
System.out.println(list.size()); // 3
System.out.println(list.get(1)); // B
System.out.println(list.remove(1)); // B
System.out.println(list.size()); // 2
总结

自定义ArrayList可以帮助我们更好地理解Java中的数据结构,并且可以满足一些特殊的需求。在实现自定义ArrayList时,我们只需要使用数组来存储元素,并实现关键方法即可。