对list中的字段进行自定义排序,最后放在LinkedHashMap中

发布时间 2023-04-03 18:54:37作者: 豆汤
List<ProjectVO> projectList = dbProjectService.getProjectList(); 
这里面如果第一个字段是如下的顺序:
"成都分公司","北京分公司", "上海分公司", "深圳分公司", "广州分公司","重庆分公司"
Map<String, List<ProjectVO>> map = projectList
.stream()
.collect(Collectors.groupingBy(ProjectVO::getCompanyName, LinkedHashMap::new, Collectors.toList()));
Map<String, List<ProjectVO>> sortedGroups = new LinkedHashMap<>();
// 自定义手动排序顺序如下
List<String> sortOrder = Arrays.asList("北京分公司", "上海分公司","广州分公司","深圳分公司", "重庆分公司", "成都分公司");
sortOrder.forEach(key -> {
if (map.containsKey(key)) {
sortedGroups.put(key, map.get(key));
}
});
//手动排序完成打印输出
System.out.println("after order map= "+sortedGroups);