lambda表达式根据对象中某个属性进行去重
1.创建实体类User
@AllArgsConstructor
@Data
public class User {
private Integer id;
private String name;
}
2.根据User的name属性进行去重
public static void main(String[] args) {
//创建一个list添加重复数据
List<User> userList=new ArrayList<>();
for (int i = 0; i < 5; i++) {
User user =new User(i,"张三");
userList.add(user);
}
System.out.println("去重前的数据:"+userList);
//根据名字进行去重
List<User> users=new ArrayList<>();
if (userList.size()>0){
users = userList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(User::getName))), ArrayList::new));
System.out.println("去重后的数据:"+users);
}
}
运行结果
去重前的数据:[User(id=0, name=张三), User(id=1, name=张三), User(id=2, name=张三), User(id=3, name=张三), User(id=4, name=张三)]
去重后的数据:[User(id=0, name=张三)]