月付网站空间提供商,南京百度网站排名,wordpress 邮件差价,百度收录什么意思文章目录 Java 设计模式之迭代器模式概述UML代码实现Java的迭代器 Java 设计模式之迭代器模式
概述
迭代器模式(Iterator)#xff0c;提供一种方法顺序访问一个聚合对象中的各个元素#xff0c;而又不暴露该对象的内部表示。
UML Iterator#xff1a;迭代器接口#xff… 文章目录 Java 设计模式之迭代器模式概述UML代码实现Java的迭代器 Java 设计模式之迭代器模式
概述
迭代器模式(Iterator)提供一种方法顺序访问一个聚合对象中的各个元素而又不暴露该对象的内部表示。
UML Iterator迭代器接口定义遍历方法。ConcreteIterator具体迭代器类实现迭代器接口负责遍历聚合对象中的元素。Aggregate聚合接口定义创建迭代器方法。ConcreteAggregate具体聚合类实现聚合接口负责存储数据和创建迭代器对象。
代码实现
定义迭代器接口
public interface IteratorT {boolean hasNext();T next();
}定义具体迭代器类
public class BookIterator implements IteratorString {private ArrayListString bookList;private int position 0;public BookIterator(ArrayListString bookList) {this.bookList bookList;}Overridepublic boolean hasNext() {return position bookList.size();}Overridepublic String next() {if (hasNext()) {return bookList.get(position);}return null;}
}定义聚合接口
public interface AggregateT {IteratorT createIterator();
}定义具体聚合类
public class BookCollection implements AggregateString {private ArrayListString bookList new ArrayList();public void addBook(final String book) {bookList.add(book);}Overridepublic IteratorString createIterator() {return new BookIterator(bookList);}
}使用
public class Client {public static void main(String[] args) {BookCollection bookCollection new BookCollection();bookCollection.addBook(西游记);bookCollection.addBook(水浒传);bookCollection.addBook(红楼梦);bookCollection.addBook(三国演义);IteratorString iterator bookCollection.createIterator();while (iterator.hasNext()) {System.out.println(iterator.next());}}
}输出
西游记
水浒传
红楼梦
三国演义Java的迭代器
Java 提供了迭代器的相关接口
// java.util.Iterator.javapublic interface IteratorE { boolean hasNext();E next();
}// java.util.ListIterator.javapublic interface ListIteratorE extends IteratorE { boolean hasNext(); E next(); boolean hasPrevious(); E previous();
}