大家好,我是三叔,很高兴这期又和大家见面了,一个奋斗在互联网的打工人。
在 Java 开发中,我们经常会面临对 List 中的对象属性去重的需求。然而,当需要根据多个属性来进行去重时,情况会稍微复杂一些。本篇博客将深入探讨如何使用 Java 8 的 Stream API 来实现 List 多属性去重。
前言
在实际开发中,我们常常遇到一个业务场景:有一个 List 集合,其中包含了多个对象,需要根据对象中某个或者某些属性来进行去重操作,以确保 List 中的元素在这些属性的组合下唯一。在 Java 8 中,Stream API 为我我们提供了一些便捷的操作,使得在开发中,效率有所提升。
list 多属性去重
创建一个 RequestDto 类,包含了姓名(name)、 id(主键)、状态(status)三个属性。我们的目标是根据姓名、id和状态这三个属性来对List 进行去重操作。
RequestDto 类:
@Data
public class RequestDto {
private String name; // 姓名
private String id; // id
private String status; // 状态
}
使用stream Api 进行去重,我们先创建一些对象集合:
package com.yin.demo.controller;
import lombok.Data;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.TreeSet;
import java.util.stream.Collectors;
@Data
public class RequestDto {
private String name;
private String id;
private String status;
}
class demo {
public static void main(String[] args) {