去除list中的重复对象

来源:互联网 发布:华为手机数据迁移 编辑:程序博客网 时间:2024/04/30 07:31


@Override@SuppressWarnings("unchecked")public List<RcStrategy> findListStrtegy(Object... params) {// TODO Auto-generated method stubList<RcStrategy> rcStrategys=new ArrayList<RcStrategy>();String hql="from RcStrategy obj where obj.continent like ? or "+ "obj.zip_name like ? or obj.country like ? or "+ "obj.key1 like ? or obj.key2 like ? or "+ "obj.country_en like ? or obj.key1_en like ? or "+ "obj.key2_en like ?";for(Object obj:params){List<RcStrategy> objs=this.createQuery(hql)//.setParameter(0, "%"+obj+"%")//.setParameter(1, "%"+obj+"%")//.setParameter(2, "%"+obj+"%")//.setParameter(3, "%"+obj+"%")//.setParameter(4, "%"+obj+"%")//.setParameter(5, "%"+obj+"%")//.setParameter(6, "%"+obj+"%")//.setParameter(7, "%"+obj+"%")//.list();rcStrategys.addAll(objs);}        //取出list中的重复对象Set<RcStrategy> set = new LinkedHashSet<RcStrategy>();           set.addAll(rcStrategys);           rcStrategys.clear();           rcStrategys.addAll(set);   return rcStrategys;}


public class RcStrategy implements java.io.Serializable {/** *  */private static final long serialVersionUID = 9136712129011193718L;private Integer id;private String continent;private String zip_name;private String zip_size;private String country;private String key1;private String key2;private String country_en;private String key1_en;private String key2_en;private String note;@Id@GeneratedValue(strategy = IDENTITY)@Column(name = "id", unique = true, nullable = false)public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}@Columnpublic String getContinent() {return continent;}public void setContinent(String continent) {this.continent = continent;}@Columnpublic String getZip_name() {return zip_name;}public void setZip_name(String zip_name) {this.zip_name = zip_name;}@Columnpublic String getZip_size() {return zip_size;}public void setZip_size(String zip_size) {this.zip_size = zip_size;}@Columnpublic String getCountry() {return country;}public void setCountry(String country) {this.country = country;}@Columnpublic String getKey1() {return key1;}public void setKey1(String key1) {this.key1 = key1;}@Columnpublic String getKey2() {return key2;}public void setKey2(String key2) {this.key2 = key2;}@Columnpublic String getCountry_en() {return country_en;}public void setCountry_en(String country_en) {this.country_en = country_en;}@Columnpublic String getKey1_en() {return key1_en;}public void setKey1_en(String key1_en) {this.key1_en = key1_en;}@Columnpublic String getKey2_en() {return key2_en;}public void setKey2_en(String key2_en) {this.key2_en = key2_en;}@Columnpublic String getNote() {return note;}public void setNote(String note) {this.note = note;}    /**     * 用于contains的去除重复对象     */@Overridepublic boolean equals(Object obj)// 重写equals方法{if (!(obj instanceof RcStrategy)) {return false;}RcStrategy rcStrategy = (RcStrategy) obj;return this.continent.equals(rcStrategy.continent)&& this.zip_name.equals(rcStrategy.zip_name)&& this.country.equals(rcStrategy.country)&& this.key1.equals(rcStrategy.key1)&& this.key2.equals(rcStrategy.key2)&& this.country_en.equals(rcStrategy.country_en)&& this.key1_en.equals(rcStrategy.key1_en)&& this.key2_en.equals(rcStrategy.key2_en);}    //用于set的去除重复对象@Overridepublic int hashCode() {// TODO Auto-generated method stubint hashCode=new StringBuilder().append(this.continent).append(this.zip_name).append(this.country).append(this.key1).append(this.key2).append(country_en).append(key1_en).append(key2_en).toString().hashCode();System.out.println("----"+hashCode);return hashCode;}}



0 0