消除通過重寫Object的equals方法重複的對象

目的:消除重複的對象,對於重複的對象只保留一個。

1 有一個實體Bean.ExceptionBean 如下,重寫Object的equals() 方法,比較兩個對象是否是同一個對象:

public class ExceptionBean {

	private String areaName;
	private String groupName;
	private int groupNo;
	private String lineNo;
	private String busJobNo;
	private Date anchorTime;
	private String faultName;
	private String busType;
	
        get/set方法省略
	
	@Override
	public boolean equals(Object obj) {
		
		if(obj == null){
			return false ;
		}
		
		if(this == obj){
			return true;
		}
		
		ExceptionBean exceInfo = (ExceptionBean)obj;
		
		if(this.getAreaName().equals(exceInfo.getAreaName())){
			
			if(this.getGroupName().equals(exceInfo.getGroupName())){
				
				if(this.getLineNo().equals(exceInfo.getLineNo())){
					
					if(this.getBusJobNo().equals(exceInfo.getBusJobNo())){
						
						if(this.getFaultName().equals(exceInfo.getFaultName())){
							
							return true ; 
						}
						
					}
					
				}
			}
		}
		return false ; 
	}
}
2  消除重複的對象,並且只保留一個。

/**
	 * 剔除重複
	 * @param falutList
	 * @return tempFaultList
	 */
	public static List<ExceptionBean> removeRepeatFalutInfo(List<ExceptionBean> falutList){
		
		List<ExceptionBean> tempFaultList = new ArrayList<ExceptionBean>() ; 
		
		for(Object o:falutList){
			
			if(!tempFaultList.contains(o)){
	           
				tempFaultList.add((ExceptionBean)o);
				
			}
		}
		return tempFaultList;
	}
OK,結束!



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章