Java stream 操作

先按照某一字段分组,再按照另外字段获取最大的那个

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

分组

List<Matchs> matchsList = new ArrayList();
    
    Map<String,List<Matchs>> MatchsListMap=matchsList.stream()
    .collect(Collectors.groupingBy(Matchs::getMatchDate));    
 

list中抽出某一个字段的值

List orderNoList=list.stream().map(Order::getOrderNo).collect(Collectors.toList());

猜你喜欢

转载自blog.csdn.net/yonghutwo/article/details/121968404