需求
我们在下订单的时候,收件人的地址信息可能会有多个,现在的需求是把一些重复的地址信息删除掉。
姓名,电话,省,市,区,详细地址完全相同则认为是同一个收件人。
分析
地址是存在数据库的表里的,所以我们需要先查出每个收件人下重复的地址,再做数据库的删除操作。可以通过使用 HashSet 的 add 方法将地址列表中的地址一个一个的添加到 HashSet 中,add 方法有个返回值,类型为 Boolean,值为 true 表示添加成功,false 表示当前元素已经重复了,此时,可以将这个已经重复的元素添加到另一个集合中,即可完成对重复元素的收集。最后,再通过数据库操作把这些重复的元素删除即可。
实现
地址实体类:
import lombok.Data;
import java.util.Objects;
// 地址实体类
@Data
public class ErpReceiver {
private Integer id;
// 收件人名
private String name;
// 手机号码
private String phone;
// 省
private String province;
// 市
private String city;
// 区
private String country;
// 详细地址
private String detailAddr;
// 姓名,电话,省,市,区,详细地址相同则视为同一个地址
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
ErpReceiver that = (ErpReceiver) o;
return Objects.equals(name, that.name) &&
Objects.equals(phone, that.phone) &&
Objects.equals(province, that.province) &&
Objects.equals(city, that.city) &&
Objects.equals(country, that.country) &&
Objects.equals(detailAddr, that.detailAddr);
}
@Override
public int hashCode() {
return Objects.hash(name, phone