在项目中总有一些乱七八糟的排序
下面是在java中实体list中 中文排序 按照数据库的排序规则进行排序的写法
public void getConnectinformation() throws Exception {
List<Elevator_Project> allPprojectList = (List<Elevator_Project>) RedisUtil.getAllTableData(usercenterContext.getRedisServerAddr(),
usercenterContext.getRedisServerPort(), usercenterContext.getRedisServerPass(),Elevator_Project.class);
Collections.sort(allPprojectList, new PersonComparator());
for(Elevator_Project project:allPprojectList){
allProject.put(project.getDb_id(), project.getDb_id_proName());
}
}
//此排序方法和数据库中的排序方法返回的值一致
class PersonComparator implements Comparator<Elevator_Project> {
@Override
public int compare(Elevator_Project p1, Elevator_Project p2) {
CollationKey formerKey = Collator.getInstance().getCollationKey(p1.getDb_id_proName()
.trim());
CollationKey latterKey = Collator.getInstance().getCollationKey(p2.getDb_id_proName()
.trim());
return formerKey.compareTo(latterKey);
}
}
这种是按照中文进行排序的写法
定义一个比较器
class PersonComparator implements Comparator<Elevator_Project> {
@Override
public int compare(Elevator_Project p1, Elevator_Project p2) {
Comparator<Object> com = Collator.getInstance(java.util.Locale.CHINA);
return com.compare(p1.getDb_id_proName(), p1.getDb_id_proName());
}
}