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(); }
之所以是迭代器模式,体现在实现接口的内部类可以有多种类型,只要你提供一套迭代方法,就可以编写一个迭代器接口的实现类。
迭代器的优势还体现在:提供了一种统一的方式来顺序地或逆序地访问一个集合中的元素,而不必关心集合的结构。也就是说它允许在不暴露集合的内在表示的情况下访问集合的元素。只要该集合实现了迭代器接口就行。
上一篇: python并发编程之线程
下一篇: java常用设计模式之迭代器模式