ArrayList 要求:包括add、get、size、indexOf、remove方法的代码实现.并在每个功能前注释其实现逻辑
时间: 2023-07-10 07:16:46 浏览: 93
Arraylist的实现
好的,以下是 ArrayList 的实现代码,包括 add、get、size、indexOf、remove 方法的实现:
```java
public class ArrayList<E> {
// 数组存储元素
private Object[] elements;
// 数组中元素的个数
private int size;
// 构造方法,初始化数组大小为 10
public ArrayList() {
elements = new Object[10];
size = 0;
}
// 添加元素
public boolean add(E e) {
// 检查数组容量,如果不够则扩容
if (size == elements.length) {
Object[] newElements = new Object[size * 2];
System.arraycopy(elements, 0, newElements, 0, size);
elements = newElements;
}
// 将元素添加到数组末尾
elements[size++] = e;
return true;
}
// 获取指定位置的元素
public E get(int index) {
if (index < 0 || index >= size) {
throw new IndexOutOfBoundsException();
}
return (E) elements[index];
}
// 获取数组中元素的个数
public int size() {
return size;
}
// 查找元素在数组中的位置
public int indexOf(Object o) {
// 遍历数组查找元素
for (int i = 0; i < size; i++) {
if (o.equals(elements[i])) {
return i;
}
}
return -1;
}
// 删除指定位置的元素
public E remove(int index) {
if (index < 0 || index >= size) {
throw new IndexOutOfBoundsException();
}
// 记录被删除的元素
E removedElement = (E) elements[index];
// 将后面的元素向前移动一个位置
System.arraycopy(elements, index + 1, elements, index, size - index - 1);
// 将数组末尾置空
elements[--size] = null;
return removedElement;
}
}
```
以上就是 ArrayList 的实现代码,其中 add 方法是向数组末尾添加元素,如果数组容量不够则会扩容;get 方法是获取指定位置的元素,如果位置越界则会抛出 IndexOutOfBoundsException 异常;size 方法是获取数组中元素的个数;indexOf 方法是查找元素在数组中的位置,如果没找到则返回 -1;remove 方法是删除指定位置的元素,如果位置越界则会抛出 IndexOutOfBoundsException 异常。
阅读全文