Comparator<Object> CHINA_COMPARE = Collator.getInstance(java.util.Locale.CHINA);
Collections.sort(list, CHINA_COMPARE);
在使用这个外部排序不能再pagehelper下面使用,因为这样只会对那一页排序,所以这里需要使用内存分页来对,这种特殊情况处理一下
//前端传入分页参数
Pageable pageable = new Pageable
pageable.setPageNum(0);
pageable.setPageSize(20);
List<XueClazz> xueClazzList = new ArrayList<>();
//分页
Integer totalNum = xueClazzeList.size();
//默认从零分页,这里要考虑这种情况,下面要计算。
int pageNum = pageable.getPageNumber() + 1;
int pageSize = pageable.getPageSize();
Integer totalPage = 0;
if (totalNum > 0) {
totalPage = totalNum % pageSize == 0 ? totalNum / pageSize : totalNum / pageSize + 1;
}
if (pageNum > totalPage) {
pageNum = totalPage;
}
int startPoint = (pageNum - 1) * pageSize;
int endPoint = startPoint + pageSize;
if (totalNum <= endPoint) {
endPoint = totalNum;
}
xueClazzeList = xueClazzeList.subList(startPoint, endPoint);
方法二
或者直接使用Oder BY convert_to(name,'gbk')数据库方法
方法三
test=# select * from a order by c1 collate "zh_CN";
--------
刘德华
刘少奇
(2 rows)
网友评论