E - このコレクション内に存在する要素の型public interface Deque<E> extends Queue<E>
Dequeのほとんどの実装では格納可能な要素の数に固定された制限はありませんが、このインタフェースでは、容量が制限された両端キューと、固定サイズ制限のない両端キューをサポートしています。
このインタフェースは、両端キューの両端にある要素にアクセスするメソッドを定義します。 要素を挿入、削除、および検査するためのメソッドが提供されています。 これらのメソッドにはそれぞれ、2つの形式があります。1つは操作が失敗したときに例外をスローし、もう1つは特殊な値(操作に応じてnullまたはfalseのいずれか)を返します。 後者の形式の挿入操作は、容量の制限されたDeque実装用として特別に設計されたものですが、ほとんどの実装では挿入操作は失敗できません。
前述の12個のメソッドについて次の表にまとめます。
| 最初の要素(先頭) | 最後の要素(末尾) | |||
| 例外のスロー | 特殊な値 | 例外のスロー | 特殊な値 | |
| 挿入 | addFirst(e) |
offerFirst(e) |
addLast(e) |
offerLast(e) |
| 削除 | removeFirst() |
pollFirst() |
removeLast() |
pollLast() |
| 検査 | getFirst() |
peekFirst() |
getLast() |
peekLast() |
このインタフェースは、Queueインタフェースを拡張します。 両端キューがキューとして使用される場合、FIFO (先入れ先出し)動作になります。 要素は両端キューの末尾に追加され、先頭から削除されます。 Queueインタフェースから継承されたメソッドは、次の表に示すようにDequeメソッドと完全に等価です。
Queueメソッド |
等価なDequeメソッド |
add(e) |
addLast(e) |
offer(e) |
offerLast(e) |
remove() |
removeFirst() |
poll() |
pollFirst() |
element() |
getFirst() |
peek() |
peekFirst() |
両端キューは、LIFO (後入れ先出し)スタックとして使用することもできます。 .従来のStackクラスよりもこのインタフェースを優先して使用してください。 両端キューがスタックとして使用される場合、両端キューの先頭から要素のプッシュとポップが行われます。 Stackメソッドは、次の表に示すようにDequeメソッドとまったくの等価です。
| Stackメソッド | 等価なDequeメソッド |
push(e) |
addFirst(e) |
pop() |
removeFirst() |
peek() |
peekFirst() |
両端キューがキューまたはスタックとして使用される場合、peekメソッドも同様に機能します。どちらの場合も、要素は両端キューの先頭から取り出されます。
このインタフェースには、内部要素を削除するための2つのメソッドremoveFirstOccurrenceおよびremoveLastOccurrenceがあります。
Listインタフェースとは異なり、このインタフェースはインデックスで要素にアクセスするためのサポートを提供しません。
Deque実装では、null要素の挿入を禁止することが厳密には必要ありませんが、禁止することを強くお薦めします。 null要素が許可されたDeque実装のユーザーは、nullを挿入する機能を利用しないことを強くお薦めします。 これは、さまざまなメソッドによって、nullは両端キューが空であることを示すための特別な戻り値として使用されるためです。
通常、Deque実装は要素ベースのequalsメソッドおよびhashCodeメソッドを定義しませんが、Objectクラスからアイデンティティ・ベースのメソッドを継承します。
このインタフェースは、Java Collections Frameworkのメンバーです。
| 修飾子と型 | メソッド | 説明 |
|---|---|---|
boolean |
add(E e) |
指定された要素を、この両端キューで表されるキュー(つまり、この両端キューの末尾)に、容量制限に違反することなしにすぐに挿入できる場合には、そうします。成功した場合は
trueを返し、使用可能な空き領域がその時点で存在しない場合はIllegalStateExceptionをスローします。 |
void |
addFirst(E e) |
容量制限に違反することなく指定された要素をこの両端キューの先頭にすぐに挿入できる場合には、そうします。使用可能な空き領域がその時点で存在しない場合は
IllegalStateExceptionをスローします。 |
void |
addLast(E e) |
容量制限に違反することなく指定された要素をこの両端キューの末尾にすぐに挿入できる場合には、そうします。使用可能な空き領域がその時点で存在しない場合は
IllegalStateExceptionをスローします。 |
boolean |
contains(Object o) |
指定された要素がこの両端キューに含まれている場合に
trueを返します。 |
Iterator<E> |
descendingIterator() |
この両端キュー内の要素を逆順で反復処理するイテレータを返します。
|
E |
element() |
この両端キューによって表されるキューの先頭(つまり、この両端キューの最初の要素)を取得しますが、削除しません。
|
E |
getFirst() |
この両端キューの最初の要素を取得しますが、削除はしません。
|
E |
getLast() |
この両端キューの最後の要素を取得しますが、削除はしません。
|
Iterator<E> |
iterator() |
この両端キュー内の要素を適切な順序で反復処理するイテレータを返します。
|
boolean |
offer(E e) |
指定された要素を、この両端キューで表されるキュー(つまり、この両端キューの末尾)に、容量制限に違反することなしにすぐに挿入できる場合には、そうします。成功した場合は
trueを返し、使用可能な空き領域がその時点で存在しない場合はfalseを返します。 |
boolean |
offerFirst(E e) |
容量制限に違反しないかぎり、指定された要素をこの両端キューの先頭に挿入します。
|
boolean |
offerLast(E e) |
容量制限に違反しないかぎり、指定された要素をこの両端キューの末尾に挿入します。
|
E |
peek() |
この両端キューによって表されるキューの先頭(つまり、この両端キューの最初の要素)を取得しますが、削除しません。両端キューが空の場合は、
nullを返します。 |
E |
peekFirst() |
この両端キューの最初の要素を取得しますが、削除しません。両端キューが空の場合は
nullを返します。 |
E |
peekLast() |
この両端キューの最後の要素を取得しますが、削除しません。両端キューが空の場合は
nullを返します。 |
E |
poll() |
この両端キューによって表されるキューの先頭(つまり、この両端キューの最初の要素)を取得および削除します。両端キューが空の場合は、
nullを返します。 |
E |
pollFirst() |
この両端キューの最初の要素を取得および削除します。両端キューが空の場合は
nullを返します。 |
E |
pollLast() |
この両端キューの最後の要素を取得および削除します。両端キューが空の場合は
nullを返します。 |
E |
pop() |
この両端キューで表されるスタックに要素をポップします。
|
void |
push(E e) |
容量制限に違反することなしに要素をこの両端キューで表されるスタック(つまり、この両端キューの先頭)にすぐにプッシュできる場合は、そうします。使用可能な空き領域がその時点で存在しない場合は
IllegalStateExceptionをスローします。 |
E |
remove() |
この両端キューによって表されるキューの先頭(つまり、この両端キューの最初の要素)を取得して削除します。
|
boolean |
remove(Object o) |
指定された要素のうち最初に出現したものを、この両端キューから削除します。
|
E |
removeFirst() |
この両端キューの最初の要素を取得して削除します。
|
boolean |
removeFirstOccurrence(Object o) |
指定された要素のうち最初に出現したものを、この両端キューから削除します。
|
E |
removeLast() |
この両端キューの最後の要素を取得して削除します。
|
boolean |
removeLastOccurrence(Object o) |
指定された要素のうち最後に出現したものを、この両端キューから削除します。
|
int |
size() |
この両端キュー内の要素の数を返します。
|
addAll, clear, containsAll, equals, hashCode, isEmpty, parallelStream, removeAll, removeIf, retainAll, spliterator, stream, toArray, toArrayvoid addFirst(E e)
IllegalStateExceptionをスローします。 容量制限のある両端キューを使用する場合、通常はofferFirst(E)メソッドを使用することをお薦めします。 e - 追加する要素IllegalStateException - 容量制限のために、この時点で要素を追加できない場合ClassCastException - 指定された要素のクラスが原因で、この両端キューにその要素を追加できない場合NullPointerException - 指定された要素がnullで、この両端キューがnull要素を許可しない場合IllegalArgumentException - 指定された要素のあるプロパティが原因で、この両端キューにその要素を追加できない場合void addLast(E e)
IllegalStateExceptionをスローします。 容量制限のある両端キューを使用する場合、通常はofferLast(E)メソッドを使用することをお薦めします。
このメソッドは、add(E)と同等です。
e - 追加する要素IllegalStateException - 容量制限のために、この時点で要素を追加できない場合ClassCastException - 指定された要素のクラスが原因で、この両端キューにその要素を追加できない場合NullPointerException - 指定された要素がnullで、この両端キューがnull要素を許可しない場合IllegalArgumentException - 指定された要素のあるプロパティが原因で、この両端キューにその要素を追加できない場合boolean offerFirst(E e)
addFirst(E)メソッドよりもこのメソッドを使用することをお薦めします。 e - 追加する要素true、それ以外の場合はfalseClassCastException - 指定された要素のクラスが原因で、この両端キューにその要素を追加できない場合NullPointerException - 指定された要素がnullで、この両端キューがnull要素を許可しない場合IllegalArgumentException - 指定された要素のあるプロパティが原因で、この両端キューにその要素を追加できない場合boolean offerLast(E e)
addLast(E)メソッドよりもこのメソッドを使用することをお薦めします。 e - 追加する要素true、それ以外の場合はfalseClassCastException - 指定された要素のクラスが原因で、この両端キューにその要素を追加できない場合NullPointerException - 指定された要素がnullで、この両端キューがnull要素を許可しない場合IllegalArgumentException - 指定された要素のあるプロパティが原因で、この両端キューにその要素を追加できない場合E removeFirst()
pollFirstメソッドと異なります。 NoSuchElementException - この両端キューが空の場合E removeLast()
pollLastメソッドと異なります。 NoSuchElementException - この両端キューが空の場合E pollFirst()
nullを返します。nullE pollLast()
nullを返します。nullE getFirst()
peekFirstメソッドと異なります。 NoSuchElementException - この両端キューが空の場合E getLast()
peekLastメソッドと異なります。 NoSuchElementException - この両端キューが空の場合E peekFirst()
nullを返します。nullE peekLast()
nullを返します。nullboolean removeFirstOccurrence(Object o)
(o==null ? e==null : o.equals(e))となる最初の要素eが存在する場合は、その要素を削除します。 指定された要素がこの両端キューに含まれていた場合(すなわち、呼出しの結果としてこの両端キューが変更された場合)はtrueを返します。 o - この両端キューから削除される要素(その要素が存在する場合)trueClassCastException - 指定された要素のクラスが、この両端キューと互換でない場合(オプション)NullPointerException - 指定された要素がnullで、この両端キューがnull要素を許可しない場合(オプション)boolean removeLastOccurrence(Object o)
(o==null ? e==null : o.equals(e))となる最後の要素eが存在する場合は、その要素を削除します。 指定された要素がこの両端キューに含まれていた場合(すなわち、呼出しの結果としてこの両端キューが変更された場合)はtrueを返します。 o - この両端キューから削除される要素(その要素が存在する場合)trueClassCastException - 指定された要素のクラスが、この両端キューと互換でない場合(オプション)NullPointerException - 指定された要素がnullで、この両端キューがnull要素を許可しない場合(オプション)boolean add(E e)
trueを返し、使用可能な空き領域がその時点で存在しない場合はIllegalStateExceptionをスローします。 容量制限のある両端キューを使用する場合、通常はofferを使用することをお薦めします。
このメソッドは、addLast(E)と同等です。
add、インタフェースCollection<E>add、インタフェースQueue<E>e - 追加する要素true (Collection.add(E)で指定されているとおり)IllegalStateException - 容量制限のために、この時点で要素を追加できない場合ClassCastException - 指定された要素のクラスが原因で、この両端キューにその要素を追加できない場合NullPointerException - 指定された要素がnullで、この両端キューがnull要素を許可しない場合IllegalArgumentException - 指定された要素のあるプロパティが原因で、この両端キューにその要素を追加できない場合boolean offer(E e)
trueを返し、使用可能な空き領域がその時点で存在しない場合はfalseを返します。 容量制限のある両端キューを使用する場合、通常は、要素の挿入に失敗した場合に例外をスローするのみのadd(E)メソッドよりもこのメソッドを使用することをお薦めします。
このメソッドは、offerLast(E)と同等です。
offer、インタフェースQueue<E>e - 追加する要素true、それ以外の場合はfalseClassCastException - 指定された要素のクラスが原因で、この両端キューにその要素を追加できない場合NullPointerException - 指定された要素がnullで、この両端キューがnull要素を許可しない場合IllegalArgumentException - 指定された要素のあるプロパティが原因で、この両端キューにその要素を追加できない場合E remove()
pollメソッドと異なります。
このメソッドは、removeFirst()と同等です。
remove、インタフェースQueue<E>NoSuchElementException - この両端キューが空の場合E poll()
nullを返します。
このメソッドは、pollFirst()と同等です。
E element()
peekメソッドと異なります。
このメソッドは、getFirst()と同等です。
element、インタフェースQueue<E>NoSuchElementException - この両端キューが空の場合E peek()
nullを返します。
このメソッドは、peekFirst()と同等です。
void push(E e)
IllegalStateExceptionをスローします。
このメソッドは、addFirst(E)と同等です。
e - プッシュする要素IllegalStateException - 容量制限のために、この時点で要素を追加できない場合ClassCastException - 指定された要素のクラスが原因で、この両端キューにその要素を追加できない場合NullPointerException - 指定された要素がnullで、この両端キューがnull要素を許可しない場合IllegalArgumentException - 指定された要素のあるプロパティが原因で、この両端キューにその要素を追加できない場合E pop()
NoSuchElementException - この両端キューが空の場合boolean remove(Object o)
(o==null ? e==null : o.equals(e))となる最初の要素eが存在する場合は、その要素を削除します。 指定された要素がこの両端キューに含まれていた場合(すなわち、呼出しの結果としてこの両端キューが変更された場合)はtrueを返します。
このメソッドは、removeFirstOccurrence(Object)と同等です。
remove、インタフェースCollection<E>o - この両端キューから削除される要素(その要素が存在する場合)trueClassCastException - 指定された要素のクラスが、この両端キューと互換でない場合(オプション)NullPointerException - 指定された要素がnullで、この両端キューがnull要素を許可しない場合(オプション)boolean contains(Object o)
trueを返します。 つまり、この両端キューに、(o==null ? e==null : o.equals(e))となる要素eが1つ以上含まれている場合にのみtrueを返します。 contains、インタフェースCollection<E>o - この両端キューにあるかどうかを調べる要素trueClassCastException - 指定された要素の型が、この両端キューと互換でない場合(オプション)NullPointerException - 指定された要素がnullで、この両端キューがnull要素を許可しない場合(オプション)int size()
size、インタフェースCollection<E> バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。