jdk8使用stream對指定值去重以及其他stream用法
阿新 • • 發佈:2021-11-10
三分熱血值得你十二分努力。// 分組統計 final Map<Integer, Long> gunCountMap = infoDTOS .stream() .filter(dto -> BooleanStatusEnum.NO.getCode() == x.getSuspend()) .collect(Collectors.groupingBy(ConnectorEquipmentInfoDTO::getConnectorStatus, Collectors.counting())); long hangOnCount = infoDTOS.stream().filter(x -> BooleanStatusEnum.YES.getCode() == x.getSuspend()).count(); final long allGunCount = gunCountMap.values().stream().collect(Collectors.summarizingLong(Long::longValue)).getSum() + hangOnCount; setGunInfo(allGunCount, hangOnCount, gunCountMap, dto); // 指定值去重 final ArrayList<ConnectorEquipmentInfoDTO> distinctList = infoDTOS .stream() .filter(Objects::nonNull) .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(ConnectorEquipmentInfoDTO::getEquipmentId))), ArrayList::new));