迭代器模式 Java
意图:

package fu;
public interface Iterator
{
boolean hasNext();
Object next();
}
再写一个容器:(山)
package fu;
public class Hall
{
tree[] t;
private int index=0;
public Hall(int a)
{
t=new tree[a];
}
public void add(tree th)
{
t[index++]=th;
}
public Iterator ci()
{
return new treeIterator(this);
}
}
往山里放些树:
package fu;
public class tree
{
public String name;
tree(String n)
{
name=n;
}
}
加一个树的迭代器:
package fu;
public class treeIterator implements Iterator
{
private int last=0;
private Hall hall;
public treeIterator(Hall h)
{
hall=h;
}
public boolean hasNext()
{
if(last<hall.t.length) return true;
return false;
}
public tree next()
{
return hall.t[last++];
}
}
测试:
package fu;
public class test
{
public static void main(String[] args)
{
Hall h=new Hall(4);tree t=null;
h.add(new tree("a"));
h.add(new tree("b"));
h.add(new tree("c"));
h.add(new tree("d"));
Iterator i=h.ci();
while(i.hasNext())
{
t=(tree)i.next();
System.out.println(t.name);
}
}
}
浙公网安备 33010602011771号