目录
- 1 需求
- 2 实现
1 需求
我们查询出数据库的实体类list 集合,需要根据这个实体类里面的某一个字段进行排序,但是这个字段值是中文,而且排序的规则也是不能使用中文首字母进行排序,比如某一个值排序必须是第一个,另外一个必须是 第二个 等之类的
我们就可以使用枚举的形式,规定哪些中文是排序第一个,哪个是第二个,最后遍历list 集合,根据枚举获取到当前数据的排序的级别 ,然后进行排序。
2 实现
我们首先写一个枚举
代码语言:javascript复制public enum StationEnum {
/**
* 级别
*/
HJJD("长沙", 1),
ZQHJJD("阿拉斯加",2),
JDJD("北京", 3);
StationEnum() {
}
private StationEnum(String message,int code ) {
this.message = message;
this.code = code;
}
private String message;
private int code;
public int getCode() {
return code;
}
public String getMessage() {
return message;
}
public static int getResultEnum(String message) {
for (StationEnum type : StationEnum.values()) {
if (type.getMessage().equals(message)) {
return type.code;
}
}
return 0;
}
}
之后查询数据库
代码语言:javascript复制这个是从数据库查询出来的数据
List<User> arrayList = new ArrayList<User>();
排序
if(arrayList!=null && arrayList.size()>0){
// 排序
Collections.sort(arrayList , new Comparator<User>() {
@Override
public int compare(Usero1, Usero2) {
int o1code = 0;
int o2code = 1;
o1code = StationEnum.getResultEnum(o1.getNodeLevel());
o2code = StationEnum.getResultEnum(o2.getNodeLevel());
return o1code-o2code;
}
});
objectObjectHashMap.put("list",arrayList);
return ResultUtil.success(objectObjectHashMap);
}