2021时事政治热点50条seo短视频
行为型模式 - 迭代器模式 (Iterator Pattern)
迭代器模式提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。
import java.util.ArrayList;
import java.util.List;// 迭代器接口
interface Iterator<T> {boolean hasNext();T next();
}// 集合接口
interface Aggregate<T> {Iterator<T> createIterator();
}// 自定义集合类
class CustomList<T> implements Aggregate<T> {private List<T> items = new ArrayList<>();public void add(T item) {items.add(item);}@Overridepublic Iterator<T> createIterator() {return new CustomListIterator<>(items);}
}// 自定义迭代器类
class CustomListIterator<T> implements Iterator<T> {private List<T> items;private int position = 0;public CustomListIterator(List<T> items) {this.items = items;}@Overridepublic boolean hasNext() {return position < items.size();}@Overridepublic T next() {if (hasNext()) {return items.get(position++);}return null;}
}// 客户端代码
public class CustomListExample {public static void main(String[] args) {CustomList<String> list = new CustomList<>();list.add("苹果");list.add("香蕉");list.add("橙子");Iterator<String> iterator = list.createIterator();while (iterator.hasNext()) {System.out.println(iterator.next());}}
}
在JDK源码中, 例如 ArrayList 的 Iterator
List: 抽象聚合类
ArrayList: 具体聚合类
Iterator: 抽象迭代器
list.iterator(): 返回的是实现了 Iterator 接口的具体迭代器