List<对象>去重

来源:互联网 发布:黑客使用什么软件 编辑:程序博客网 时间:2024/09/21 08:54
package ss;import java.util.ArrayList;import java.util.HashSet;import java.util.Iterator;import java.util.List;public class HashCodeTest {public static class AlarmInfoDTO  {private String alarmsType;private String timestamp;private String numberPlate;public AlarmInfoDTO(String alarmsType,String timestamp,String numberPlate) {// TODO Auto-generated constructor stubthis.alarmsType = alarmsType;this.numberPlate = numberPlate;this.timestamp = timestamp;}@Overridepublic boolean equals(Object obj) {if(this==obj){              return true ;          }          if(!(obj instanceof AlarmInfoDTO)){              return false ;          }          AlarmInfoDTO alarmInfo = (AlarmInfoDTO)obj ;    // 向下转型          return this.alarmsType.equals(alarmInfo.alarmsType)&&        this.timestamp.equals(alarmInfo.timestamp)&&        this.numberPlate.equals(alarmInfo.numberPlate);//&&}@Overridepublic int hashCode() {// TODO Auto-generated method stubreturn this.numberPlate.hashCode()*Integer.parseInt(this.alarmsType);}private void print(){System.out.println(this.alarmsType+","+this.numberPlate+","+this.timestamp);}}public static void main(String[] args){List<AlarmInfoDTO> rs = new ArrayList<HashCodeTest.AlarmInfoDTO>();rs.add(new AlarmInfoDTO("1","2","20130303"));rs.add(new AlarmInfoDTO("1","2","20130303"));rs.add(new AlarmInfoDTO("2","2","20130303"));rs.add(new AlarmInfoDTO("2","2","20130303"));rs.add(new AlarmInfoDTO("3","3","20120202"));rs.add(new AlarmInfoDTO("3","3","20120202"));rs.add(new AlarmInfoDTO("3","3","20120202"));rs.add(new AlarmInfoDTO("1","3","20120202"));rs.add(new AlarmInfoDTO("4","4","20120202"));HashSet<AlarmInfoDTO> set = new HashSet<AlarmInfoDTO>();for (int i = 0; i < rs.size(); i++) {set.add(rs.get(i));}List<AlarmInfoDTO> result = new ArrayList<HashCodeTest.AlarmInfoDTO>();result.addAll(set);for (int i = 0; i < result.size(); i++) {result.get(i).print();}}}

对于List对象存储去重最重要的就是要重写equals和hashCode这两个方法,缺一不可。


原创粉丝点击