gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 11:27:14 24 4
gpt4 key购买 nike

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

谁能给我一个 Queue 的例子addoffer方法不一样?

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

offer 方法是否无论如何都会添加重复项? (我怀疑这是因为如果 Collection 应该只有不同的元素,这将绕过它)。

编辑:在 PriorityQueue 中,addoffer 方法是相同的方法(请参阅下面的答案)。谁能给我一个 addoffer 方法不同的类的例子吗?

最佳答案

我猜区别在于契约(Contract),当元素不能添加到集合中时,add 方法会抛出异常,而 offer 不会。

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

If a collection refuses to add a particular element for any reason other than that it already contains the element, it must throw an exception (rather than returning false). This preserves the invariant that a collection always contains the specified element after this call returns.

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

Inserts the specified element into this queue, if possible. When using queues that may impose insertion restrictions (for example capacity bounds), method offer is generally preferable to method Collection.add(E), which can fail to insert an element only by throwing an exception.

关于java - Java 队列中的 add 和 offer 方法有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2703984/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com