• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

Java8 stream 之groupingBy() 分组排序

java 来源:Hi-Sunshine 1次浏览

前言

把username相同的数据放到一起

方法一(优化前)
 Map<String,List<AppraiseDetailModel>>appraiseDetailModelMap=newLinkedHashMap<>();
		for(AppraiseDetailModelappraiseDetailModel:detailModelList){
        //map是否包含此key,若已经包含则添加一个新的数字到对应value集合中
        if(appraiseDetailModelMap.containsKey(appraiseDetailModel.getAppraiserId())){
            appraiseDetailModelMap.get(appraiseDetailModel.getAppraiserId()).add(appraiseDetailModel);
        }else{
            //map不包含此key,则重新创建一个新集合,并把这个数字添加进集合
            List<AppraiseDetailModel>appraiseDetailModelList=newArrayList<>();
            appraiseDetailModelList.add(appraiseDetailModel);
            appraiseDetailModelMap.put(appraiseDetailModel.getAppraiserId(),appraiseDetailModelList);
        }
    }
方法二 (优化后)
 //按照被评价人id进行分组
Map<String,List<AppraiseDetailModel>> appraiseDetailModelMap=detailModelList.stream().collect(Collectors.groupingBy(AppraiseDetailModel::getAppraiserId,Collectors.toList()));

最后结果

优化后分析

优化前10行代码,优化后变成了1行代码,把握代码质量,提升性能.

感谢您的阅读~~


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)