手写实现了iterator()的ArrayList
时间: 2023-07-16 08:17:35 浏览: 63
好的,下面是手写实现了iterator()的ArrayList的示例代码:
```java
import java.util.Iterator;
public class MyArrayList<T> implements Iterable<T> {
private T[] items;
private int size;
public MyArrayList() {
items = (T[]) new Object[10];
size = 0;
}
// 添加元素
public void add(T item) {
if (size == items.length) {
resize(2 * size);
}
items[size++] = item;
}
// 改变数组大小
private void resize(int newSize) {
T[] temp = (T[]) new Object[newSize];
for (int i = 0; i < size; i++) {
temp[i] = items[i];
}
items = temp;
}
// 实现 Iterable 接口的 iterator() 方法
public Iterator<T> iterator() {
return new MyArrayListIterator();
}
// 定义内部类实现 Iterator 接口
private class MyArrayListIterator implements Iterator<T> {
private int current = 0;
public boolean hasNext() {
return current < size;
}
public T next() {
if (!hasNext()) {
throw new java.util.NoSuchElementException();
}
return items[current++];
}
public void remove() {
throw new UnsupportedOperationException();
}
}
}
```
在这个示例中,我们实现了一个 MyArrayList 类,它实现了 Iterable 接口,因此可以使用 foreach 循环进行遍历操作。MyArrayList 的 iterator() 方法返回一个实现了 Iterator 接口的内部类 MyArrayListIterator 的对象。MyArrayListIterator 中的 hasNext() 和 next() 方法实现了遍历 ArrayList 的功能。```remove()```方法则抛出了UnsupportedOperationException异常,因为我们并没有在 MyArrayList 类中实现这个方法。
希望这个示例能够帮助你理解如何手写实现了 iterator() 的 ArrayList。