迭代子模式(Iterator Pattern)是一种用于遍历集合的通用设计模式,它提供了一种在不指定具体集合实现的情况下遍历集合的方法。下面是一个使用迭代子模式的示例代码:
首先,定义一个接口,用于实现集合的遍历:
public interface Iterator<T> {
boolean hasNext();
T next();
}
然后,定义一个实现该接口的类,用于遍历集合:
public class ArrayIterator<T> implements Iterator<T> {
private T[] array;
private int index;
public ArrayIterator(T[] array) {
this.array = array;
this.index = 0;
}
@Override
public boolean hasNext() {
return index < array.length;
}
@Override
public T next() {
return array[index++];
}
}
最后,定义一个类,用于使用迭代子模式遍历集合:
import java.util.ArrayList;
import java.util.List;
public class CollectionIteratorExample {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
Iterator<String> iterator = new ArrayIterator(list.toArray(new String[0]));
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
}
}
在这个示例中,我们定义了一个名为 ArrayIterator 的类,它实现了 Iterator 接口。ArrayIterator 类使用一个数组来存储集合中的元素,并使用一个整数变量 index 来记录当前遍历的位置。hasNext 方法检查 index 是否小于数组的长度,next 方法返回数组中当前 index 位置的元素,并将 index 加一。
最后,我们定义了一个名为 CollectionIteratorExample 的类,它使用 ArrayIterator 类遍历一个 List 集合。在 main 方法中,我们创建了一个 List 集合,添加了三个元素,然后创建了一个 ArrayIterator 对象,用于遍历该集合。通过循环调用 next 方法,我们可以遍历集合中的所有元素,并打印它们。