【发布时间】:2016-05-30 01:50:39
【问题描述】:
我目前正在阅读 Deitel 的 Java How to program 这本书,其中一些措辞似乎令人困惑。我想知道是否有人可以解释这一点,因为它似乎具有误导性。
将元素添加到 PriorityQueue 时,元素按优先级顺序插入,最高优先级的元素(即最大值)将是从 PriorityQueue 中删除的第一个元素。
让我感到困惑的部分是它说最高优先级的元素(最大值)将被删除。根据该声明,如果我要在一个 PriorityQueue 中添加 9.8、5.4 和 3.2,那么我希望它按该顺序删除/轮询 PriorityQueue,无论我在插入它们时将它们放置在什么顺序。
但是,在我的代码示例中,我注意到了相反的情况。元素被移除的顺序是从最小的数量开始。在阅读 javadocs 时,我看到它在哪里说“这个队列的头部是相对于指定排序的最少元素”,这与我使用代码示例时发现的一致。
这是否意味着这本书是错误的,或者我只是没有理解这本书用来描述这个概念的措辞?
【问题讨论】:
-
他错了,Javadoc 是正确的。但是,您可以定义一个颠倒顺序的
Comparator。
标签: java collections queue priority-queue