java中优先级队列中的offer()和add()之间的区别?

时间:2013-03-23 19:59:57

标签: java

为什么两个函数做同样的事情?

java api中提供的说明http://docs.oracle.com/javase/7/docs/api/java/util/PriorityQueue.html上的文档是相同的。

1 个答案:

答案 0 :(得分:51)

这两个函数来自PriorityQueue实现的两个不同接口:

  • add()来自Collection
  • offer()来自Queue

对于容量受限的队列,区别在于add()始终返回true并在无法添加元素时抛出异常,而允许offer()返回false {1}}如果无法添加元素。

但是,这不适用于PriorityQueue;这两个函数是同义词。