写个arraylist源码实现
时间: 2023-09-24 11:14:18 浏览: 78
以下是简单的 ArrayList 实现:
```java
public class ArrayList<E> {
private static final int DEFAULT_CAPACITY = 10;
private Object[] elements;
private int size;
public ArrayList() {
elements = new Object[DEFAULT_CAPACITY];
}
public void add(E e) {
if (size == elements.length) {
resize();
}
elements[size++] = e;
}
public E get(int index) {
if (index < 0 || index >= size) {
throw new IndexOutOfBoundsException();
}
return (E) elements[index];
}
public int size() {
return size;
}
private void resize() {
int newCapacity = elements.length * 2;
Object[] newElements = new Object[newCapacity];
System.arraycopy(elements, 0, newElements, 0, size);
elements = newElements;
}
}
```
这个 ArrayList 实现有以下特点:
- 初始容量为 10,当数组满时会自动扩容为原来的两倍。
- 支持添加元素和获取元素,但不支持删除或插入元素。
- 使用 Object 数组存储元素,并且需要进行类型转换。
阅读全文