我知道Java中PriorityQueue的构造函数需要一个size参数。如何预先确定?如果我需要扩大队列或在删除后重新调整大小,该怎么办?
谢谢。
答案 0 :(得分:6)
您不需要提供大小参数,默认构造函数将返回默认初始容量为11的构造函数。只要需要,此容量将增加2 x,因此您不必担心这一点。
提前提供尺寸的唯一目的是节省时间,因此不必经常增长,因为这需要一些时间(虽然注意到很明显)。
答案 1 :(得分:3)
PriorityQueue是无限的,它可以增长到你的内存允许的大小,并且它会在需要时自动增长。 initialCapacity
参数只是为最初为这么多元素预留空间的提示。
在docs中阅读更多内容。
答案 2 :(得分:3)
您所说的尺寸为initialCapacity
。您不必放大队列:它会在需要时自动增长。
答案 3 :(得分:2)
构建后为您管理集合。你用这个构造函数做的是给java一个提示(为数组分配足够的内存)。
我认为java的优先级队列基于基于数组的堆(如果感兴趣,应该在jdk中检查)