迭代器模式实现人事管理信息系统中,添加一种遍历方式,能遍历出以某个英文字母开头的所有客户名字。用Eclipse编码实现。

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){
        	    
        	}
        }
       
    }

}

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值