package T;
public interface Aggregate{
public void add(String obj);
public void remove(String obj);
public Iterator getIterator();
}
package T;
import java.util.ArrayList;
import java.util.List;
public class ConcreteAggregate implements Aggregate{
private List<String> list=new ArrayList<String>();
public void add(String obj){
list.add(obj);
}
public void remove(String obj){
list.remove(obj);
}
public Iterator getIterator(){
return(new ConcreteIterator(list));
}
}
package T;
import java.util.List;
public class ConcreteIterator implements Iterator{
private List<String> list=null;
private int index=-1;
public ConcreteIterator(List<String> list){
this.list=list;
}
public boolean hasNext(){
if(index<list.size()-1){
return true;
}
else{
return false;
}
}
public String f(String n){
String obj=null;
String ob=null;
String o=null;
if(this.hasNext()){
obj=list.get(++index);
o = obj.substring(0, 1);
if(n.equals(o)){
ob = obj;
}
}
return ob;
}
public String next(){
String obj=null;
//String ob=null;
if(this.hasNext()){
obj=list.get(++index);
//ob = obj.substring(0, 1);
}
return obj;
}
}
package T;
public interface Iterator{
String f(String n);
String next();
boolean hasNext();
}
package T;
import java.util.Scanner;
import java.util.List;
public class IteratorPattern {
public static void main(String[] args){
Aggregate cwd=new ConcreteAggregate();
cwd.add("cg");
cwd.add("ceny");
cwd.add("gh");
cwd.add("agh");
System.out.print("请输入查询客户的开头字母:");
Scanner s = new Scanner(System.in);
String n = s.nextLine();
System.out.print("客户的信息:");
Iterator it=cwd.getIterator();
Iterator i=cwd.getIterator();
while(it.hasNext()){
String ob=it.next();
System.out.print(ob.toString()+"\t");
}
System.out.println("");
System.out.println("查询客户的信息:");
while(i.hasNext()){
String ob=i.f(n);
try {
System.out.print(ob.toString()+"\t");
}
catch(Exception exception){
}
}
}
}