试图了解PriorityQueue

时间:2014-05-08 06:16:23

标签: java

我尝试过查看很多网站,例如:

How do I use a PriorityQueue?

Java PriorityQueue with fixed size

但他们似乎没有回答我的问题。

更具体地说,我正在尝试实现一个自定义优先级队列,其中我只能有一个零{1}参数构造函数,可以是zero / capacity / p-queue对象。这是否可能考虑到线程

How do I use a PriorityQueue?

讨论2-arg构造函数(capacitycomparator)?

补充:P-Queue的值是否总是作为二叉树存储和检索?那么它们总是不会被排序吗?例如[5, 6, 6, 64, 9]

1 个答案:

答案 0 :(得分:1)

关于构造函数

PriorityQueue已经有一个零参数构造函数。你可以自己看看 如果你阅读javadocs,很容易。无论这是否适合您的目的我都不能说。它 确实要求您使用实现可比较的类型(例如String,Integer) 否则队列将无法知道如何订购元素。

capacity的情况下,

PriorityQueue不是最大容量,而只是提示 你认为在同一时间队列中有多少元素。它只有性能 这意味着,他们队列的语义完全独立于此。

存储和检索语义

以任何顺序存储(插入)值,但按顺序检索。那就是 优先级队列的一个点。每次追加时自动排序的列表 它将为您提供与javas PriorityQueue完全相同的语义。列表实现的思路非常低效,这就是你使用堆的原因。

我不确定这是否是对您要求的回复,所以如果不是请 澄清你的困惑。