//由于业务需要,需要做非空返回,所以采用匿名内部类的方式
private void sort(List<Map<String, Object>> procedureInfoList) {
procedureInfoList.sort((data1, data2) -> {
// 这里只是取两条数据
Object objects1 = data1.get(Const.GX_ORDER);
Object objects2 = data2.get(Const.GX_ORDER);
// 校验为null的判断 这里为null抛出异常
if (StringUtils.isEmpty(objects1)) {
log.info(String.format("ID为:%s 的GX_ORDER这个字段是必填", data1.get(Const.ID)));
throw new NumberFormatException();
}
if (StringUtils.isEmpty(objects2)) {
log.info(String.format("ID为:%s 的GX_ORDER这个字段是必填", data2.get(Const.ID)));
throw new NumberFormatException();
}
int oneInt = Integer.parseInt(String.valueOf(objects1));
int twoInt = Integer.parseInt(String.valueOf(objects2));
return oneInt - twoInt;
});
}
如果不需要在排序里面做业务判断建议用lambda stream 的方式