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));
        }
    }
  • 相关阅读:
    ASP.NET MVC 编程参考
    IDEA+Gradle相关资料
    【树莓派】Linux应用相关:自动删除n天前日志
    【树莓派】制作树莓派最小镜像:img裁剪瘦身
    【树莓派】树莓派下WiFi断线自动重连
    【树莓派】树莓派远程监控
    【树莓派】服务配置相关
    【树莓派】Linux自动配置IP
    Jmeter相关
    Linux集群监控工具简介:Ganglia和Nagios
  • 原文地址:https://www.cnblogs.com/xiaoniuniu886/p/13427233.html
Copyright © 2011-2022 走看看