java对List集合中的姓名进行排序

1:怎么用(开局就给代码,可直接使用,下面才是解析,不想看可直接拉取代码)

 List<实体类名> list = apperalTypeMapper.selectList(实体类名);

 Collections.sort(list, new Comparator<实体类名>() {
            @Override
            public int compare(实体类名 o1, 实体类名 o2) {
                //排序规则:按照汉字拼音首字母排序
                Comparator<Object> com = Collator.getInstance(java.util.Locale.CHINA);
                return com.compare(o1.getName(), o2.getName());
            }
        });

list为你查询出来的集合,无论是mapper还是mybatis-plue直接查询出来的都可以

然后复制下面的内容进下部,该怎么返回list还是怎么返回list,不用再调用这个方法。

注:这个01.getName 是你自己要进行排序的变量名(比如学生姓名),不是固定的变量名

List<实体类名> lists = apperalTypeMapper.selectList(实体类名); 
Collections.sort(list, new Comparator<实体类名>() {
            @Override
            public int compare(实体类名 o1, 实体类名 o2) {
                //排序规则:按照汉字拼音首字母排序
                Comparator<Object> com = Collator.getInstance(java.util.Locale.CHINA);
                return com.compare(o1.getName(), o2.getName());
            }
        });

2:为什么用

(1)Comparator 可以看成是外部比较器,因为它先有list集合,然后再对list集合用比较器去排序;

(2)Collections.sort 比较器方法,会自动引出下方的compare方法,对compare方法进行重写,可以自定义排序的使用

如果你点进去内部会发现,Collections.sort方法底层就是调用的Arrays.sort方法,而Arrays.sort使用了两种排序方法,快速排序和优化的归并排序(还是相当于封装了,可以更好的使用)

因为它能更好的进行排序,不用写更多代码,也能自由的进行排序

3:用法

(1)Collections.sort(java对象集合,new Comperator<>())

这种方式需要填入两个参数
        1、list集合中元素的数据类型是一个java对象;

        2、重写compare方法;

(2)Collections.sort(list);

1.它是基本类型: 默认是按照升序排序的

原因:list中的对象String 本身含有compareTo方法,所以可以直接调用sort方法,按自然顺序排序,即升序排序

2.如果要降序,还是需要重写compare方法,返回值为int类型,大于0表示正序,小于0表示逆序

好用又健康,兄弟们

     @Override
     public int compare(Integer o1, Integer o2) {
           // 返回值为int类型,大于0表示正序,小于0表示逆序
           return o2 - o1;
          }

加班去喽

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值