• 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));
        }
    }
  • 相关阅读:
    [C#] override和overload的区别
    [ASP.Net] 20141228_Dapper文章搜集
    JSP
    Ajax使用简介
    编写JAVA脚本的JSP页面
    JAVA web开发模式
    JSP基础
    过滤器
    监听会话范围内事件
    http解析
  • 原文地址:https://www.cnblogs.com/xiaoniuniu886/p/13427233.html
Copyright © 2020-2023  润新知