如何在Java中调整/扩大PriorityQueue

时间:2012-02-02 16:19:56

标签: java

我知道Java中PriorityQueue的构造函数需要一个size参数。如何预先确定?如果我需要扩大队列或在删除后重新调整大小,该怎么办?

谢谢。

4 个答案:

答案 0 :(得分:6)

您不需要提供大小参数,默认构造函数将返回默认初始容量为11的构造函数。只要需要,此容量将增加2 x,因此您不必担心这一点。

提前提供尺寸的唯一目的是节省时间,因此不必经常增长,因为这需要一些时间(虽然注意到很明显)。

答案 1 :(得分:3)

PriorityQueue是无限的,它可以增长到你的内存允许的大小,并且它会在需要时自动增长。 initialCapacity参数只是为最初为这么多元素预留空间的提示。

docs中阅读更多内容。

答案 2 :(得分:3)

您所说的尺寸为initialCapacity。您不必放大队列:它会在需要时自动增长。

答案 3 :(得分:2)

构建后为您管理集合。你用这个构造函数做的是给java一个提示(为数组分配足够的内存)。

我认为java的优先级队列基于基于数组的堆(如果感兴趣,应该在jdk中检查)