练习10(Java第四版第十章练习2 /P192)
继承迭代器,实现迭代功能
代码
package practice10;
class NewString{
private String s;
public NewString(String s){
this.s=s;
}
public String toString(){
return s;
}
}
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();
}
public static void main(String[] args) {
NewString s1=new NewString("wang");
NewString s2=new NewString("ya");
NewString s3=new NewString("bo");
Sequence sq=new Sequence(3);
sq.add(s1);
sq.add(s2);
sq.add(s3);
Selector sel=sq.selector();
while(!sel.end()){
System.out.println(sel.current()+" ");
sel.next();
}
}
}