ArrayList 要求:包括add、get、size、indexOf、remove方法的实现
时间: 2023-07-10 19:28:21 浏览: 106
ArrayList 是Java中常用的动态数组,支持动态添加、获取、删除元素,并且可以根据下标快速访问元素。下面是一个基于Java实现 ArrayList 的示例代码,包括add、get、size、indexOf、remove方法的实现:
```java
public class ArrayList<T> {
private T[] array;
private int size;
private static final int DEFAULT_CAPACITY = 10;
public ArrayList() {
array = (T[]) new Object[DEFAULT_CAPACITY];
size = 0;
}
public void add(T value) {
if (size == array.length) {
resize();
}
array[size++] = value;
}
public T get(int index) {
if (index < 0 || index >= size) {
throw new IndexOutOfBoundsException("Index is out of range!");
}
return array[index];
}
public int size() {
return size;
}
public int indexOf(T value) {
for (int i = 0; i < size; i++) {
if (array[i] == value) {
return i;
}
}
return -1;
}
public void remove(int index) {
if (index < 0 || index >= size) {
throw new IndexOutOfBoundsException("Index is out of range!");
}
for (int i = index; i < size - 1; i++) {
array[i] = array[i + 1];
}
size--;
}
private void resize() {
T[] newArray = (T[]) new Object[array.length * 2];
System.arraycopy(array, 0, newArray, 0, array.length);
array = newArray;
}
}
```
在上面的代码中,我们定义了一个名为ArrayList的类,它使用泛型实现了一个动态数组。add方法用于添加元素,如果当前数组已满,则进行扩容;get方法用于获取指定下标的元素,如果下标越界则抛出异常;size方法返回元素个数;indexOf方法用于查找指定元素在数组中的下标,如果不存在则返回-1;remove方法用于删除指定下标的元素,如果下标越界则抛出异常。
希望这个示例代码对你有所帮助。
阅读全文