【问题标题】:Should Queue#offer() be preferred over Queue#add()? Why?Queue#offer() 是否应该优先于 Queue#add()?为什么?
【发布时间】:2016-02-24 21:48:20
【问题描述】:

offer() 返回booleanadd() 抛出Exception 如果Queue 中没有元素。那么,一般情况下应该使用哪一种,使用一种比另一种有什么优势呢?

【问题讨论】:

  • 好吧,抛出异常是很昂贵的。这将是选择另一种方法的一个原因。一般来说,虽然我会说“取决于您的要求。”
  • 谢谢!任何示例“要求”?

标签: java queue


【解决方案1】:

我想区别在于合同,当元素不能添加到集合中时,add方法会抛出异常而offer不会。

发件人:http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html#add%28E%29

如果集合因任何原因拒绝添加特定元素 除了它已经包含该元素之外,它还必须抛出一个 异常(而不是返回 false)。这保留了不变量 在此之后集合始终包含指定元素 调用返回。来自:

http://java.sun.com/j2se/1.5.0/docs/api/java/util/Queue.html#offer%28E%29

如果可能,将指定元素插入此队列。使用时 可能施加插入限制的队列(例如容量 边界),方法报价通常比方法更可取 Collection.add(E),只能通过 抛出异常。

来源:-What is the difference between the add and offer methods in a Queue in Java?

【讨论】:

  • 这个问题不是关于这些方法之间的“差异”。
猜你喜欢
  • 2021-12-09
  • 1970-01-01
  • 1970-01-01
  • 2017-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多