在Java中如何将固定大小设置为PriorityQueue?

在Java中如何将固定大小设置为PriorityQueue?,java,priority-queue,Java,Priority Queue,我有一个简单的问题。我正在我的项目中实现PriorityQueue。我的问题是,我可以为PriorityQueue是Java吗?设置一个固定大小,正如oracle文档中所述, : 优先级队列是无界的,但其内部容量控制用于存储队列上元素的数组的大小。它始终至少与队列大小一样大。当元素添加到优先级队列时,其容量会自动增长。未指定增长策略的详细信息 一种可能的解决方法是,您可以在执行任何操作之前检查尺寸: if (q.size() <= QUEUE_LIMIT) //your code

我有一个简单的问题。我正在我的项目中实现
PriorityQueue
。我的问题是,我可以为
PriorityQueue
是Java吗?

设置一个固定大小,正如oracle文档中所述, :

优先级队列是无界的,但其内部容量控制用于存储队列上元素的数组的大小。它始终至少与队列大小一样大。当元素添加到优先级队列时,其容量会自动增长。未指定增长策略的详细信息

一种可能的解决方法是,您可以在执行任何操作之前检查尺寸:

if (q.size() <= QUEUE_LIMIT)
     //your code

if(q.size()否)。这是
Collection
的一部分,它根据我们放置/添加的项目动态增长。如果您正在寻找固定大小或编写自定义实现,最好使用数组之类的东西。您希望它的语义如何工作?(如果您只是尝试获取特定集合的顶级k元素,并且可以使用第三方库,请考虑使用番石榴的<代码>可选。@MaxZoom否。请不要这样做。
MinMaxPriorityQueue
仅用于您实际需要访问最小和最大元素时,并且对于您描述的情况执行效果很差。请勿在这种情况下使用
MinMaxPriorityQueue