前言
把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行代码,把握代码质量,提升性能.
感谢您的阅读~~