Answers:
为了找出差异,需要遵循PriorityQueue API javadocs,后者依次具有“指定者”部分,这些部分将读者引向Queue
接口中的相应方法:
如果可以立即将指定的元素插入此队列,而不会违反容量限制,则在成功时返回true,如果当前没有可用空间,则抛出IllegalStateException ...
返回:(true
由Collection.add(E)指定)
抛出:IllegalStateException
-如果由于容量限制此时无法添加元素...
如果可以在不违反容量限制的情况下立即将指定的元素插入此队列。当使用容量受限的队列时,此方法通常比add(E)更可取,因为add(E)可能仅通过引发异常而无法插入元素 ...
返回:true
如果元素已添加到此队列,否则false
...
两种方法都存在,因为它们必须由声明的接口实现。
请注意,由于PriorityQueue是无界的(如javadocs中所述:“ 基于优先级堆的无界优先级队列...”),因此上述API设计器的首选项不适用。这意味着程序员可以自行决定在特定的使用上下文中选择更适合其需求的方法。