【问题标题】:Difference between offer() and add() in priority queue in java? [duplicate]java中优先级队列中offer()和add()的区别? [复制]
【发布时间】:2013-03-13 13:18:26
【问题描述】:

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

http://docs.oracle.com/javase/7/docs/api/java/util/PriorityQueue.html 的 java api 文档中提供的描述相同。

【问题讨论】:

标签: java


【解决方案1】:

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

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

对于容量受限的队列,区别在于add() 总是返回true,如果不能添加元素则抛出异常,而offer() 允许返回false,如果可以' t 添加元素。

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

【讨论】:

  • 容量受限队列是什么意思?
  • @user7098526 某些队列实现可能具有固定容量,例如数组阻塞队列。用例可能是一些缓冲区,如果它已经满了,它将简单地拒绝添加请求 - 有点像 OOO 的保护。
猜你喜欢
  • 2013-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-13
相关资源
最近更新 更多