JAVA8 常用Stram处理方法

作者 : admin 本文共1527个字,预计阅读时间需要4分钟 发布时间: 2024-06-16 共1人阅读

JAVA8 常用Stram处理方法

  • 排序
  • 排序对象集合属性一升序 属性二降序
    • List转Map
    • List分组
    • 求和
    • 提取字符串
    • 根据属性去重
    • 分组排序
    • 求和

排序


List noSList = ss.stream().sorted(Comparator.comparing(MachineOrderResponse.BackRecord::getTime).reversed()).collect(Collectors.toList());

排序对象集合属性一升序 属性二降序


implicationHolderTableTemplateDtoList.sort(Comparator.comparing(ImplicationHolderTableTemplateDto::getaBDistinguish).thenComparing(ImplicationHolderTableTemplateDto::getAttendCnt, Comparator.reverseOrder()));

List转Map

Map collect = probabilitiesList.stream().collect(Collectors.toMap(ll -> BigDecimal.valueOf(ll.getADouble()), PlayResponse.Probability::getUuid));

List分组

Map<String, List> goodMap = leaveList.stream().collect(Collectors.groupingBy(MachineOrderResponse.GoodsOrder::getProduct_id));

求和

int totalGoodsCount = goodsLists.stream().mapToInt(PostageSettingRequest.GoodsList::getGoodsListCount).sum();

提取字符串

String goodsName = orderGoodsList.stream().map(goods -> goods.getGoodsName() + " X " + goods.getOrderGoodsCount())
        .collect(Collectors.joining(", "));

根据属性去重

mandataryInfoTableList = mandataryInfoTableList.stream().collect(
                collectingAndThen(
                        toCollection(() -> new TreeSet(Comparator.comparing(mandataryInfoTable -> mandataryInfoTable.getCertificateId() + ";" + mandataryInfoTable.getHolderName()))), ArrayList::new));

分组排序

Map<String, List> groupMap = fuzzyTrialCalculationDtoList.stream()
        .sorted(Comparator.comparingInt(FuzzyTrialCalculationDto::getAlgorithmSort))
        .collect(Collectors.groupingBy(FuzzyTrialCalculationDto::getAlgorithmName, LinkedHashMap::new, Collectors.toList()));

求和

int totalAge = peopleList.stream()
                .mapToInt(Person::getAge)
                .sum();
本站无任何商业行为
个人在线分享 » JAVA8 常用Stram处理方法
E-->