根据一个或多个属性对List去重

编程入门 行业动态 更新时间:2024-10-22 14:24:14

根据一个或<a href=https://www.elefans.com/category/jswz/34/1771377.html style=多个属性对List去重"/>

根据一个或多个属性对List去重

示例代码

@Test
public void test01() {List<CodeTemplateDO> list = new ArrayList<>();CodeTemplateDO codeTemplateDO01 = new CodeTemplateDO();codeTemplateDO01.setRemark("备注01");codeTemplateDO01.setDelFlag(NumberUtils.BYTE_ZERO);list.add(codeTemplateDO01);CodeTemplateDO codeTemplateDO02 = new CodeTemplateDO();codeTemplateDO02.setRemark("备注01");codeTemplateDO02.setDelFlag(NumberUtils.BYTE_ZERO);list.add(codeTemplateDO02);System.out.println("去重前:");System.out.println("list是:" + JSONUtil.toJsonStr(list));// 按属性去重(仅仅支持一个属性)//list = list.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparatorparing(CodeTemplateDO::getRemark))), ArrayList::new));// 按属性去重(支持多个属性)list = CollUtil.distinct(list, e -> StrUtil.format("{}_{}", e.getRemark(), e.getDelFlag()), true);System.out.println("去重后:");System.out.println("list是:" + JSONUtil.toJsonStr(list));}

代码说明

  1. CollUtil.distinct方法来源于cn.hutool.core.collection.CollUtil#distinct(java.util.Collection, java.util.function.Function<T,K>, boolean),具体可参考该工具类方法的说明。
  2. StrUtil.format方法来源于cn.hutool.core.text.CharSequenceUtil#format,此方法简单将占位符{}按照顺序替换为参数。

更多推荐

根据一个或多个属性对List去重

本文发布于:2024-02-14 00:49:28,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1761558.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:多个   属性   List

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!