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));
        }
    }
  • 相关阅读:
    盛京剑客系列21:再强调一遍:机会在MSCI成份,别走偏了
    盛京剑客系列20:平仓中兴通讯,获利45.51%,继续加仓优质个股
    盛京剑客系列19:推书《战胜华尔街》
    盛京剑客系列18:很多人因为恐惧脚下的小土坑,却丢掉了一米远处的大金矿
    盛京剑客系列17:市场暴跌下投资组合的调整
    盛京剑客系列16:推书《股市稳赚》
    盛京剑客系列15:割韭秘籍
    盛京剑客系列14:对高估值医药股要谨慎
    盛京剑客系列13:披露指数的密码,曙光就在前方
    leetcode -- Longest Valid Parentheses
  • 原文地址:https://www.cnblogs.com/xiaoniuniu886/p/13427233.html
Copyright © 2011-2022 走看看