arraylist源码
时间: 2023-12-03 08:35:07 浏览: 79
ArrayList源码
以下是 Java 中 ArrayList 类的简化版源码:
```java
public class ArrayList<E> implements List<E> {
private static final int DEFAULT_CAPACITY = 10;
private Object[] elementData;
private int size;
public ArrayList() {
this.elementData = new Object[DEFAULT_CAPACITY];
this.size = 0;
}
public void add(E element) {
if (size == elementData.length) {
expandCapacity();
}
elementData[size++] = element;
}
private void expandCapacity() {
int newCapacity = elementData.length * 2;
Object[] newElementData = new Object[newCapacity];
System.arraycopy(elementData, 0, newElementData, 0, size);
elementData = newElementData;
}
public E get(int index) {
if (index < 0 || index >= size) {
throw new IndexOutOfBoundsException();
}
return (E) elementData[index];
}
public int size() {
return size;
}
}
```
这是一个简单的 ArrayList 实现,它使用一个数组来存储元素,并根据需要动态调整数组的大小。ArrayList 实现了 List 接口,提供了添加元素、获取元素和获取列表大小等基本操作。请注意,这只是一个简化的版本,真实的 ArrayList 源码会更加复杂和完整。
阅读全文