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));
        }
    }
  • 相关阅读:
    镜像劫持2
    镜像劫持2
    Windows核心编程 第十七章 -内存映射文件(下)
    Windows核心编程 第十七章 -内存映射文件(下)
    WindowsPE 第五章 导出表编程-1(枚举导出表)
    WindowsPE 第五章 导出表编程-1(枚举导出表)
    PowerShell-2.解决禁止本地执行脚本
    PowerShell-2.解决禁止本地执行脚本
    PowerShell-1.入门及其常用
    CodeForces B. Creating the Contest
  • 原文地址:https://www.cnblogs.com/xiaoniuniu886/p/13427233.html
Copyright © 2011-2022 走看看