我有一个Java应用程序,我正在使用Spring Framework。
使用bean我定义了一个队列,其大小设置为最多5个元素,如下所示:
<bean id="Queue1" class="java.util.concurrent.PriorityBlockingQueue">
<constructor-arg type="int"><value>5</value></constructor-arg>
</bean>
然后我使用注入将它传递给Java中的构造函数,并在构造函数中初始化它。在Java中,我已经定义并完成了以下内容:
private final BlockingQueue<OrdenTrabajo> queue;
...
this.queue = queue
...
稍后,当我尝试使用以下代码获取队列大小时:
queue.size()
它返回0而不是5.为什么?
此外,是否有可能获得当前队列中的元素数量?
答案 0 :(得分:1)
int构造函数参数是initial capacity,而不是最初存在的元素数。
PriorityBlockingQueue.size()
返回集合中存在的元素数量; PriorityBlockingQueue.remainingCapacity()
返回可用容量。