Java的PriorityQueue将最少的元素放在列表的头部,但是我需要它将最大的元素放在头部.什么是获得行为类似的优先级队列的最佳方法.
由于我编写了存储在此队列中的类,因此我可以简单地反转其结果compareTo
,而不是在此队列之外使用它.
但是我喜欢让代码准确地表示我正在建模的东西,我想要做的是先获得最大的代码所以代码应该说,而不是至少首先使用不同寻常的定义.
[编辑]只是一个快速的谢谢大家,比较器听起来像我需要的只是我自己如何写一个.
传递一个比较器,它在您实例化PriorityQueue时反转自然顺序.
它看起来像这样:
public class ReverseYourObjComparator implements Comparator{ public int compare(final YourObj arg0, final YourObj arg1) { return 0 - arg0.compareTo(arg1); } }