1. ホーム
  2. java

[解決済み] JavaでQueueのaddメソッドとofferメソッドの違いは何ですか?

2022-03-01 02:28:42

質問

を取る。 PriorityQueue 例えば http://java.sun.com/j2se/1.5.0/docs/api/java/util/PriorityQueue.html#offer(E)

の例をどなたか教えてください。 Queue ここで add offer メソッドは違うのですか?

によると Collection docでは add メソッドは、多くの場合、ある要素が Collection は、重複を追加するのではなく そこで質問なのですが addoffer メソッドですか?

ということでしょうか。 offer メソッドは関係なく重複を追加するのでしょうか?(というのは、もし Collection これは、それを回避するものです)。

EDIT において 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

指定された要素を挿入します。 このキューは、可能であれば このキューを使用する場合 キューに挿入される可能性がある 制限(例えば、容量 バウンズ)、一般的にメソッドオファーは メソッドよりも コレクション.add(E)は、失敗する可能性があります。 を投げることによってのみ、要素を挿入することができます。 例外が発生します。