栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java利用Stream实现实体类根据多个属性去重的操作

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java利用Stream实现实体类根据多个属性去重的操作

核心代码
List collect = list.stream()
    .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> 
           new TreeSet<>(Comparator.comparing(o -> o.getId() + ";" + o.getParameter() + ";" + o.getParam()))), ArrayList::new));
全部代码演示

0. 新建一个实体类

@ToString
@Data
@Builder
public class TestDTO {

    private Long id;

    private String param;

    private String parameter;
}

 1. 主函数测试

public static void main(String[] args) {
   List list = new ArrayList(){
       {
            add(TestDTO.builder().id(1L).parameter("111").param("111").build());
            add(TestDTO.builder().id(1L).parameter("111").param("1111").build());
            add(TestDTO.builder().id(2L).parameter("111").param("111").build());
            add(TestDTO.builder().id(2L).parameter("111").param("111").build());
        }
    };
    ArrayList collect = list.stream()
            .collect(Collectors.collectingAndThen(Collectors.toCollection(() ->
                    new TreeSet<>(Comparator.comparing(o -> o.getId() + ";" + o.getParameter() + ";" + o.getParam()))), ArrayList::new));
        System.out.println(JSON.toJSON(collect));
    }

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1032661.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号