当我们取数据时, 有时候需要对某个字段或者多个字段进行排序,
那么该怎么实现呢?
首先从数据库取数据可以在sql里面直接 order by col
多个字段直接 order by col1 , col2
例如:
select * from user order by age
假如取出数据后又会对数据重新处理导致排序失效, 那么可以在代码里再一次进行排序
我们可以使用list.sort()
myList.sort(new Comparator<A>() {
@Override
public int compare(A o1, A o2) {
return o1.getName().compareTo(o2.getName());
}
});
之前遇到一个小问题, 假如name 字段包含中文和英文, 需要实现英文按字母顺序, 中文也按首拼音的字母顺序 排列
上面的代码无法实现
需要用到处理中文的排序方式
Comparator comparator= Collator.getInstance(java.util.Locale.CHINA);
myList.sort(new Comparator<A>() {
@Override
public int compare(A o1, A o2) {
return comparator.compare(o1.getName(),o2.getName());
}
});