迭代器模式:一个个遍历
迭代器模式主要用于遍历集合类中的元素,让我们能够更方便地访问和操作集合中的每一个元素。Java内部集合就实现了迭代器模式。
示例代码:使用ArrayList中的iterator
import java.util.ArrayList;
import java.util.Iterator;
public class IteratorPatternDemo {
public static void main(String[] args) {
ArrayList<String> names = new ArrayList<>();
// 添加一些元素
names.add("Alice");
names.add("Bob");
names.add("Charlie");
// 获取迭代器
Iterator<String> iterator = names.iterator();
// 遍历集合中的元素并输出
while (iterator.hasNext()) {
String name = iterator.next();
System.out.println(name);
}
}
}
也可以通过Iterable
和Iterator
实现自定义的迭代器:
示例代码:自定义迭代器
import java.util.Iterator;
public class MyIterable implements Iterable<Integer> {
private int[] data;
public MyIterable(int[] arr) {
data = arr;
}
@Override
public Iterator<Integer> iterator() {
return new MyIterator();
}
private class MyIterator implements Iterator<Integer> {
private int index;
@Override
public boolean hasNext() {
return index < data.length;
}
@Override
public Integer next() {
if (!hasNext()) {
throw new IndexOutOfBoundsException("Reached end of array.");
}
return data[index++];
}
@Override
public void remove() {
throw new UnsupportedOperationException("Cannot remove elements from immutable array.");
}
}
}