List 集合合并 去重
前段时间在完成一个商品管理系统时,在管理员对商品进行联合搜索时,假如有一个商品名为“苹果” ,类别为“水果”,这时管理员在搜索栏输入“果”,因为为减小数据库压力,并不是对数据表中的外键进行操作,而是选择在Service 层调用两个DAO层的接口来实现,并将返回的集合合并。此时会出现一个问题:搜索出来的结果中,“苹果”出现了两次,那么如何在此步骤下实现去重呢?
/==================================================================
做到对象去重很简单,就是还要在你的entity里重写equals和hashCode方法
public class Cargo {
private String name;
private Integer num;
private String type;
public Cargo(String name, Integer num, String type) {
this.name = name;
this.num = num;
this.type = type;
}
@Override
public int hashCode() {
String result = name+type;
return result.hashCode();
}
@Override
public boolean equals(Object obj) {
Cargo u = (Cargo)obj;
return this.getName().equals(u.getName()) && (this.getType().equals(u.getType()));
}
}
具体为何要重写equals和hashCode方法:https://blog.csdn.net/zknxx/article/details/53862572