手写arraylist底层数组,给我一个java代码~
时间: 2024-04-22 18:24:35 浏览: 95
当然可以,这是一个简单的手写ArrayList底层数组的Java代码:
```java
import java.util.Arrays;
public class MyArrayList<E> {
private static final int DEFAULT_CAPACITY = 10;
private Object[] elements;
private int size;
public MyArrayList() {
elements = new Object[DEFAULT_CAPACITY];
size = 0;
}
public void add(E element) {
if (size == elements.length) {
grow();
}
elements[size++] = element;
}
public E get(int index) {
if (index < 0 || index >= size) {
throw new IndexOutOfBoundsException();
}
return (E) elements[index];
}
public void remove(int index) {
if (index < 0 || index >= size) {
throw new IndexOutOfBoundsException();
}
for (int i = index; i < size - 1; i++) {
elements[i] = elements[i + 1];
}
elements[--size] = null;
}
public int size() {
return size;
}
private void grow() {
int newCapacity = elements.length * 2;
elements = Arrays.copyOf(elements, newCapacity);
}
}
```
这是一个简单的ArrayList的实现,使用Object数组作为底层存储结构。它具有添加、获取、移除和获取大小等基本功能。需要注意的是,这只是一个简单的示例,没有考虑到并发和其他高级特性。
阅读全文