Java标准集合中的最大优先级队列.有吗?

Cra*_*lus 0 java queue collections priority-queue

我需要一个Max-Priority Queue数据结构.

查看Java的优先级队列,我注意到它是一个Min-Priority Queue.

来自javadoc:

此队列的头部是指定排序的最小元素

我看到有提供自定义的选项,Comparator并查看一些建议使用一个帖子并进行反向比较以实现a的结果Max Priority Queue.
这在我看来虽然是"丑陋的黑客",也许并不直观.

这是Max-Priority Queue获得Java标准集合的唯一方法吗?
是否有一个我错过的更合适的对象?(比如前一阵子我没意识到那StackDeque...... 替换了......我的坏)

JB *_*zet 7

AFAIK,是的,这是拥有你想要的东西的最佳方式.我真的不明白这是一个丑陋的黑客.如果只有一个就足够了,那就没有必要提供两个不同的类.如果我们按照你的推理,我们会有一个MinTreeSet和一个MaxTreeSet,一个MinTreeMap和一个MaxTreeMap等,所有这些都完全相同.这是战略模式的经典用法.

只需使用Collections.reverseOrder()一个比较器,按照自然顺序的相反顺序进行比较.