Java队列中的add和offer方法有什么区别?

以http://java.sun.com/j2se/1.5.0/docs/api/java/util/PriorityQueue.html#offer(E)PriorityQueue为例

谁能给我一个例子,Queue其中addoffer方法有所不同?

根据Collection文档,该add方法通常会试图确保元素存在于Collection而不是添加重复项中。所以我的问题是addoffer方法之间有什么区别?

offer方法是否会添加重复项?(我怀疑这是因为如果a Collection仅包含不同的元素,则会绕开它)。

编辑:在PriorityQueueaddoffer方法是相同的方法(见我的回答如下)。谁能给我一个与addoffer方法不同的类的示例?

回答:

我想合同的区别在于,当无法将元素添加到集合时,该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

如果可能,将指定的元素插入此队列。当使用可能施加插入限制(例如容量限制)的队列时,方法offer通常比方法Collection.add(E)更好,后者只能通过引发异常来插入元素。

以上是 Java队列中的add和offer方法有什么区别? 的全部内容, 来源链接: utcz.com/qa/419772.html

回到顶部