根据对像中的某个属性对集合进行排序

/**
* 给场景按状态排序
*
* @param list
* @return
*/
private List<FusRecomConfigDO> sortFusRecomConfigDO(List<FusRecomConfigDO> list) {
//指定排序规则
List<String> sortList = new ArrayList<>(Arrays.asList(RecomConfigStatusEnum.PROD.getCode(),
RecomConfigStatusEnum.GRAY.getCode(),
RecomConfigStatusEnum.PRE.getCode(),
RecomConfigStatusEnum.DRAFT.getCode(),
RecomConfigStatusEnum.PROD_TO_OFFLINE.getCode(),
RecomConfigStatusEnum.DISCARD.getCode()
));
List<FusRecomConfigDO> collect = list.stream().sorted(
Comparator.comparing(FusRecomConfigDO::getStatus, (x, y) -> {
if (x == null && y != null) {
return 1;
} else if (x != null && y == null) {
return -1;
} else if (x == null && y == null) {
return -1;
} else {
//按照排序的list顺序排序
for (String s : sortList) {
if (s.equals(x) || s.equals(y)) {
if (x.equals(y)) {
return 0;
} else if (s.equals(x)) {
return -1;
} else {
return 1;
}
}
}
}
return 0;
})).collect(Collectors.toList());
return collect;
}

猜你喜欢

转载自www.cnblogs.com/panbingqi/p/10936005.html