Queue #grime()是否应优先于队列#add()?为什么?

时间:2015-11-22 20:51:10

标签: java queue

如果offer()中没有元素,则

boolean会返回add()Exception会抛出Queue。那么,一般应该使用哪一个,使用哪个优于另一个?

1 个答案:

答案 0 :(得分:0)

我猜不同之处在于合同中,当元素无法添加到集合时,add方法会抛出异常,并且不会提供。

来自: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?