如:角色去重处理

baseRoleList = baseRoleList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(role -> role.getRoleId()))), ArrayList::new));

原文链接:
https://blog.csdn.net/qq_28988969/article/details/81119587

原文内容:

背景

有一个list,实体包含多个字段,当其中两个字段值均相同时,就认为list中的这两条记录是一样的

去重

java8中有一个collectingAndThen可以根据多个字段去重

依据姓名和年龄去重,当姓名和年龄相同时,认为这两个实体相同

class FlightTicketInfo {

    private String orderNumber;

    private String userName;

    private String age;

    public FlightTicketInfo(String orderNumber, String userName, String age) {
this.orderNumber = orderNumber;
this.userName = userName;
this.age = age;
} @Override
public String toString() {
return "FlightTicketInfo{" +
"orderNumber='" + orderNumber + '\'' +
", userName='" + userName + '\'' +
", age='" + age + '\'' +
'}';
} public String getOrderNumber() {
return orderNumber;
} public String getUserName() {
return userName;
} public String getAge() {
return age;
}
} @Test
public void testList(){
List<FlightTicketInfo> infoList = new ArrayList<>();
infoList.add(new FlightTicketInfo("11111", "xiaoming", "22"));
infoList.add(new FlightTicketInfo("22222", "xiaoming", "22"));
infoList.add(new FlightTicketInfo("33333", "xiaoming", "23"));
infoList.add(new FlightTicketInfo("11111", "xiaoming", "22"));
infoList.stream()
.collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(f -> f.getUserName()+f.getAge()))), ArrayList::new))
.forEach(System.out::println);
}

  

java steam List指定字段去重的更多相关文章

  1. list集合中指定字段去重

    在开发中,有时会需要指定字段去重,以下为实现方法: 假设有个房地产权的类,其中宗地代码ZDDM值重复,而我们在前端页面显示时,只需要一条数据,因为公共字段都一样: IEqualityComparer需 ...

  2. C#NPOI.RabbitMQ.EF.Attribute.HttpRuntime.Cache.AD域.List<T>根据指定字段去重.前端JQuery.Cache.I18N(多语言).data-xx(自定义属性)

    使用NPOI 操作Excel 个人使用的电脑基本默认安装Excel 操作起来 调用Excel的组件便可.如果是一台服务器.没有安装Excel,也就无法调用Excel组件. 在此推荐第三方插件.NPOI ...

  3. sort排序,按指定字段进去重,sort -t "^" -k 8 -su,ls给文件名中数字排序sort -k1.5n,Tab符要转义

    sort sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出.如果 File 参数指定多个文件,那么 sort 命令将这些文件连接起来,并当作一个文件进行排序. sort语法 ...

  4. JAVA 自定义对象集合 List<T> 根据自定义字段去重

    1.拥有自定义对象 MyUser @Data public class MyUser { private String userName; private String passWord; } 2.编 ...

  5. json对象去重,根据指定字段

    function FilterByName(data, Name) { //data是json对象,Name是根据什么字段去重 var map = {}, dest = []; for (var i ...

  6. 如何让jpa 持久化时不校验指定字段

    源文:https://www.toocruel.net/jpa-validate/ 怎么让jpa 持久化时不校验指定字段 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥 ...

  7. List集合中的对象按照某个字段去重实现

    package com.liying.banana.user; import java.util.ArrayList; import java.util.Comparator; import java ...

  8. mongodb多字段去重

    单字段去重 db.student.distinct("name"); 多字段去重 db.student.aggregate([{      $group:{            ...

  9. MySQL select 语句指定字段查询

    指定字段查询 SELECT 语法 SELECT [ALL | DISTINCT] {* | table.* | [table.field1[as alias1][,table.field2[as al ...

随机推荐

  1. POJ Corn Fields 状态压缩DP基础题

    题目链接:http://poj.org/problem?id=3254 题目大意(名称什么的可能不一样,不过表达的意思还是一样的): 种玉米 王小二从小学一年级到现在每次考试都是班级倒数第一名,他的爸 ...

  2. jQuery 控制網頁捲軸移動 & Ignore link '#' method jump action

    $('a.gotoheader').click(function(){ // 讓捲軸移動到 0 的位置 $(); // ignore link "#" method return ...

  3. Selenium IDE命令

    Selenium IDE中提供了丰富的操作命令,在Selenium IDE的Command的下拉列表框中可以选择使用这些命令. 下面介绍一些常用命令的使用. 1.open open(url) 在浏览器 ...

  4. iOS-退出App程序,进入设置页面

     AppDelegate *app = [UIApplication sharedApplication].delegate;     UIWindow *window = app.window;   ...

  5. k8s调度器之亲和性和反亲和性/节点选择器

    容器在节点(物理机)上是如何部署的 是由调度器scheduler进行调度的 调度策略 随机 通过节点选择器选择某些节点 通过节点亲和性和pod的亲和性及反亲和性实现更细粒度的控制 参考 https:/ ...

  6. 创建 LVM

    1.将物理磁盘设备条带化为物理卷 # pvcreate /dev/sdb 查看物理卷: # pvs# pvdisplay 2.创建卷组,并添加 PV 到卷组 # vgcreate vg1 /dev/s ...

  7. skywalking 链路式跟踪

    wget http://mirror.bit.edu.cn/apache/skywalking/6.4.0/apache-skywalking-apm-6.4.0.tar.gzwget https:/ ...

  8. art-template 弹出上传多图

    主内容 <script id="img-show-tpl" type="text/html"> <div> <div class= ...

  9. [转帖]五分钟彻底搞懂你一直没明白的Linux内存管理

    五分钟彻底搞懂你一直没明白的Linux内存管理 https://cloud.tencent.com/developer/article/1462476 现在的服务器大部分都是运行在Linux上面的,所 ...

  10. Python--对list、tuple、dict的操作

    一.List(列表) 首先,创建一个简单的list: animal = ['cat','dog','lion','tiger'] (1) 用索引的方式访问list中的元素:animal[0] 当索引从 ...