欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java的迭代器模式的应用 Java迭代器模式 

程序员文章站 2022-05-04 13:17:45
...

使用内部类,实现Java的迭代器模式:

interface Selector{
	boolean end();
	Object current();
	void next();
}
public class Sequence {
	private Object[] items;
	private int next = 0;
	public Sequence(int size){
		items = new Object[size];
	}
	public void add(Object x){
		if(next < items.length)
			items[next++] = x;
	}
	
	private class SequenceSelector implements Selector{
		private int i = 0;
		public boolean end(){ return i==items.length;}
		public Object current(){ return items[i];}
		public void next(){if(i<items.length) i++;}
	}
	
	public Selector selector(){
		return new SequenceSelector();
	}
}

 使用SequenceSelector这个内部类实现selector这个接口,并在外部类中提供方法返回这个内部类的对象,这样在需要对外部类的列表对象进行遍历访问时,可通过生成一个内部类的对象来实现。调用方式为:

Selector selector = sequence.selector();
		while(!selector.end()){
			System.out.print(selector.current()+" ");
			selector.next();
		}

 之所以是迭代器模式,体现在实现接口的内部类可以有多种类型,只要你提供一套迭代方法,就可以编写一个迭代器接口的实现类。

 迭代器的优势还体现在:提供了一种统一的方式来顺序地或逆序地访问一个集合中的元素,而不必关心集合的结构。也就是说它允许在不暴露集合的内在表示的情况下访问集合的元素。只要该集合实现了迭代器接口就行。