比较器的使用

1.在类中添加一个专属类的比较器:

假设已有一个类Student,且有一个int型数据id,按照id的升序构造一个比较器:

复制代码
public static class IdAscComparator implements Comparator<Student> {
        /*
         * 如果返回的值为负数,则第一个值排前面
         * 如果返回的值为正数,则第二个值排前面
         * 如果返回的值为0,则无所谓谁排前面
         */
        public int compare(Student o1, Student o2) {
            return o1.id - o2.id;
        }
    }
复制代码

 

2.将默认的升序改为降序:

如将默认的小根堆转为大根堆:

1 /*
2      * 还可以添加一个比较器,使得优先队列从默认的小根堆变为大根堆
3      */
4     public static class IntDescComparator implements Comparator<Integer> {
5         public int compare(Integer o1,Integer o2) {
6             return o2 - o1;
7         }
8     }

 

posted @   jue1e0  阅读(187)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
点击右上角即可分享
微信分享提示