一.前言
在项目中经常会碰到按某些属性是否相同去去除List集合中的重复对象的问题,每次看网上写的都是什么 “重写自定义对象的equlas和hashCode”,千篇一律全是这样,但是真实项目中自定义的对象可能在多个地方用到,每个地方的去重方式都可能不一样,重写肯定是不行的,今天就总结一下不重写对象的equlas和hashCode,去除List中的重复对象。
二. 实现方式
假设我们有个对象User, 包含四个属性: name、nickName、age、dept,需要根据name和age这两个属性去重,如果这两个属性相同就代表同一个对象
public class User {
// 姓名
private String name;
// 昵称
private String nickName;
// 年龄
private Integer age;
// 部门
private String dept;
// 此处省略set和get方法
}
在list集合中添加5个User对象,分别如下:
public static void main(String[] args) {
List<User> userList = new ArrayList<>();
userList.add(new User("张三", "三儿", 20, "销售部"));
userList.add(new User("李四", "四儿", 23, "销售部"));
userList.ad