如何使用优先队列根据键值对的值进行排序
Posted
技术标签:
【中文标题】如何使用优先队列根据键值对的值进行排序【英文标题】:How to sort based on values of a key-value pair using a Priority-Queue 【发布时间】:2021-10-07 01:04:16 【问题描述】:我有一个基于键值对的值映射。 例如 [1,2,2,5,3,4,4,1]
如何使用优先级队列根据值对它们进行排序?
需要的输出: [4,1->1,2->3,4->2,5]
【问题讨论】:
*** 不是用于编写代码的服务。请分享您尝试过的代码以及不起作用的代码 【参考方案1】:您需要在添加到优先级队列的对象类中覆盖方法compareTo
:
这是 Employee 类,有两个字段是 id 和salary。
我使用 id 作为键和薪水作为值。然后我会按价值(薪水)排序
@Override
public int compareTo(Employee employee)
if(this.getSalary() > employee.getSalary())
return 1;
else if (this.getSalary() < employee.getSalary())
return -1;
else
return 0;
【讨论】:
以上是关于如何使用优先队列根据键值对的值进行排序的主要内容,如果未能解决你的问题,请参考以下文章