zoukankan      html  css  js  c++  java
  • Java8去重

    package com.cdyfsz.autoaudit.rule.tool.test;
    
    import com.cdyfsz.autoaudit.rule.tool.dto.ExcelAuditConclusionDto;
    import com.cdyfsz.autoaudit.rule.tool.utils.CollectionUtils;
    
    import java.util.*;
    import java.util.concurrent.ConcurrentHashMap;
    import java.util.function.Function;
    import java.util.function.Predicate;
    import java.util.stream.Collectors;
    import static java.util.stream.Collectors.collectingAndThen;
    import static java.util.stream.Collectors.toCollection;
    
    public class testMain01 {
        public static void main(String[] args) {
            List<ExcelAuditConclusionDto> auditConclusionCodeList = new ArrayList<>();
            ExcelAuditConclusionDto excelAuditConclusionDto1 = new  ExcelAuditConclusionDto();
            excelAuditConclusionDto1.setAuditConclusionCode("01");
            excelAuditConclusionDto1.setAuditConclusion("结论1");
            excelAuditConclusionDto1.setAuditConclusionParentCode("001");
            ExcelAuditConclusionDto excelAuditConclusionDto2 = new  ExcelAuditConclusionDto();
            excelAuditConclusionDto2.setAuditConclusionCode("01");
            excelAuditConclusionDto2.setAuditConclusion("结论1");
            excelAuditConclusionDto2.setAuditConclusionParentCode("001");
            ExcelAuditConclusionDto excelAuditConclusionDto3 = new  ExcelAuditConclusionDto();
            excelAuditConclusionDto3.setAuditConclusionCode("02");
            excelAuditConclusionDto3.setAuditConclusion("结论2");
            excelAuditConclusionDto3.setAuditConclusionParentCode("002");
    
            auditConclusionCodeList.add(excelAuditConclusionDto1);
            auditConclusionCodeList.add(excelAuditConclusionDto2);
            auditConclusionCodeList.add(excelAuditConclusionDto3);
    
    
    
    
            if (CollectionUtils.isNotEmpty(auditConclusionCodeList)) {
    
                // 去重
                auditConclusionCodeList = auditConclusionCodeList.stream().collect(collectingAndThen(
                        toCollection(() -> new TreeSet<>(Comparator.comparing(ExcelAuditConclusionDto::getAuditConclusionCode))), ArrayList::new)
                );
    
                auditConclusionCodeList = auditConclusionCodeList.stream().collect(collectingAndThen(
                        toCollection(()-> new TreeSet<>(Comparator.comparing(ExcelAuditConclusionDto::getAuditConclusionCode))),ArrayList::new)
                );
                // 去重
                auditConclusionCodeList =  auditConclusionCodeList.stream().filter(distinctByKey(ExcelAuditConclusionDto::getAuditConclusionCode)).collect(Collectors.toList());
    
    
            }
    
    
            for (ExcelAuditConclusionDto rd :auditConclusionCodeList){
                System.out.println(rd.getAuditConclusionCode()+"====="+rd.getAuditConclusion());
            }
    
    
        }
    
    
        private static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) {
            Set<Object> seen = ConcurrentHashMap.newKeySet();
            return t -> seen.add(keyExtractor.apply(t));
        }
    }
  • 相关阅读:
    为什么你改了我还看不见?
    一条SQL更新语句是如何执行的?
    一条SQL查询语句是如何执行的?
    为什么学习mysql
    读书并不只是向一个方向前进——《代码之外的生存指南》
    RabbitMQ在C#中的使用
    RFID技术与条形码技术的对比
    射频识别技术RFID
    通过IIS不能连接远程数据库的问题
    老板不断加需求、改需求的四种应对方法
  • 原文地址:https://www.cnblogs.com/xiaoniuniu886/p/13427233.html
Copyright © 2011-2022 走看看