java stream 处理分组后取每组最大

有一个需求功能:先按照某一字段分组,再按照另外字段获取最大的那个

Map configMap = configList.parallelStream().collect(
               Collectors.groupingBy(HitRuleConfig::getAppId, // 先根据appId分组
               Collectors.collectingAndThen(
               Collectors.reducing(( c1,  c2) -> c1.getVersionSort() > c2.getVersionSort() ? c1 : c2), Optional::get)));

先根据appId分组,然后根据versionSort排序取最大

你可能感兴趣的:(java stream 处理分组后取每组最大)