offer()
中没有元素,则 boolean
会返回add()
而Exception
会抛出Queue
。那么,一般应该使用哪一个,使用哪个优于另一个?
答案 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?