比较器的使用
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 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧