美文网首页
在排序中,给对象按照拼音排序

在排序中,给对象按照拼音排序

作者: momdiemg | 来源:发表于2019-11-26 15:46 被阅读0次

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)

相关文章

网友评论

      本文标题:在排序中,给对象按照拼音排序

      本文链接:https://www.haomeiwen.com/subject/eztywctx.html