Java8根据某个字段或者多个字段去重

业务需求1:需要对前端入参进行某个字段或者多个字段去重操作,防止插入重复数据。

业务需求2:多条件下抓取数据列表,需要对数据列表的某个字段或者多个字段进行去重。

话不对多说,上代码

根据title和name字段去重。1、

list = list

      .stream()

      .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(

      Comparator.comparing(x -> x.getTitle() + x.getName()))), ArrayList::new));

2、 对前端下单的商品sku编号去重

orderList = orderList

        .stream()

        .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(

            Comparator.comparing(CreateOrderDto.Goods::getSkuNo))), ArrayList::new));

 注:

使用了Java8两个获取字段的方式,第一种比较常用,类似前端的钩子函数,可读性比较明了,但是当你检测哪个字段被哪里地方被引用时,这样写的字段不会被检测到。

个人推荐用第二种,代码比较简洁,而且你检测字段时,这个字段也会被检测到被使用,最主要是idea不报黄色提示了哈哈哈。

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值