19

の要素取得操作の次のグループのそれぞれで、異なるメソッド間に違いはありますLinkedListか?

null を返す + 操作を削除する: poll()pollFirst().

null を返す + 操作を削除しない: peek() , peekFirst().

例外のスロー + 操作の削除: pop()remove()removeFirst().

例外をスローしています + 操作を削除していません: element() , getFirst().

挿入メソッドにも同様の重複が存在します。

そのような違いがない場合は、メソッドのjavadocで言及されると思います(古き良き「これは呼び出しとまったく同じです...」のようなもの)。それはずさんなドキュメントだけですか、それとも何か不足していますか?

4

3 に答える 3

15

それらの間に違いはなく、ドキュメントにもリストされていますが、そこに到達するには再帰的な検索を行う必要があります。

LinkedListQueueと の 2 つのインターフェイスを実装しますDeque。からDeque拡張されQueueます。

これでDeque、メソッドが定義され、メソッドDeque#pollFirst()が継承されましたQueue#poll()

したがって、LinkedList基本的に、実装する 2 つのインターフェイスに対してこれら 2 つのメソッドが定義されています。

これら 2 つの方法の類似点については、次のドキュメントに記載されていますDeque

このインターフェイスは Queue インターフェイスを拡張します。deque をキューとして使用すると、FIFO (First-In-First-Out) 動作が発生します。要素は両端キューの最後に追加され、最初から削除されます。次の表に示すように、Queue インターフェイスから継承されたメソッドは Deque メソッドとまったく同じです。

Queueまた、クラスのメソッドと同等のメソッドをリストした表がありますDeque。を参照Deque#poll()してください。Deque#peek()たとえば、同等の方法が明確にリストされています。

于 2013-02-13T10:38:15.790 に答える