Java设计模式:迭代器

迭代器模式用于迭代对象的集合。这是一种常用的模式,您以前可能已经使用过。每当您看到诸如hasNext()和next()之类的东西时,它可能都是迭代器模式。例如,您可以遍历数据库查询记录列表。

迭代器模式类图
在这里插入图片描述
迭代器模式Java代码

interface IIterator{
	public boolean hasNext();
	public Object next();
}
 
interface IContainer{
	public IIterator createIterator();
}
 
class RecordCollection implements IContainer{
	private String recordArray[] = {"first","second","third","fourth","fifth"};
 
	public IIterator createIterator(){
		RecordIterator iterator = new RecordIterator();
		return iterator;
	}
 
	private class RecordIterator implements IIterator{
		private int index;
 
		public boolean hasNext(){
			if (index < recordArray.length)
				return true;
			else
				return false;
		}
 
		public Object next(){
			if (this.hasNext())
				return recordArray[index++];
			else
				return null;
		}
	}
}
 
public class TestIterator {
	public static void main(String[] args) {
		RecordCollection recordCollection = new RecordCollection();
		IIterator iter = recordCollection.createIterator();
 
		while(iter.hasNext()){
			System.out.println(iter.next());
		}	
	}
}

JDK中使用的迭代器模式

在java.util包中,Iterator接口的定义如下:

public interface Iterator<E> {
    boolean hasNext();
    E next();
    void remove();
}

然后是可以创建迭代器的类,例如TreeSet#iterator(),HashSet#iterator()等。

在这里插入图片描述

发布了17 篇原创文章 · 获赞 0 · 访问量 185

猜你喜欢

转载自blog.csdn.net/qq_41806546/article/details/105133869