|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
E - コレクション内に存在する要素の型public interface Deque<E>
両端で要素の挿入および削除をサポートする線形コレクションです。「deque」という名前は、「double ended queue」 (両端キュー) の省略形であり、通常は「デック」と発音されます。ほとんどの 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)
指定された要素を、この両端キューで表されるキュー (つまり、この両端キューの末尾) に、容量制限に違反することなしにすぐに挿入できる場合には、そうします。 |
void |
addFirst(E e)
容量制限に違反することなく指定された要素をこの両端キューの先頭にすぐに挿入できる場合は、挿入します。 |
void |
addLast(E e)
容量制限に違反することなく指定された要素をこの両端キューの末尾にすぐに挿入できる場合は、そうします。 |
boolean |
contains(Object o)
指定された要素がこの両端キューに含まれている場合に true を返します。 |
Iterator<E> |
descendingIterator()
この両端キュー内の要素を逆順で繰り返し処理する反復子を返します。 |
E |
element()
この両端キューによって表されるキューの先頭 (つまり、この両端キューの最初の要素) を取得しますが、削除しません。 |
E |
getFirst()
この両端キューの最初の要素を取得しますが、削除はしません。 |
E |
getLast()
この両端キューの最後の要素を取得しますが、削除はしません。 |
Iterator<E> |
iterator()
この両端キュー内の要素を適切な順序で繰り返し処理する反復子を返します。 |
boolean |
offer(E e)
指定された要素を、この両端キューで表されるキュー (つまり、この両端キューの末尾) に、容量制限に違反することなしにすぐに挿入できる場合には、そうします。 |
boolean |
offerFirst(E e)
容量制限に違反しないかぎり、指定された要素をこの両端キューの先頭に挿入します。 |
boolean |
offerLast(E e)
容量制限に違反しないかぎり、指定された要素をこの両端キューの末尾に挿入します。 |
E |
peek()
この両端キューによって表されるキューの先頭 (つまり、この両端キューの最初の要素) を取得しますが、削除しません。 |
E |
peekFirst()
この両端キューの最初の要素を取得しますが、削除しません。 |
E |
peekLast()
この両端キューの最後の要素を取得しますが、削除しません。 |
E |
poll()
この両端キューによって表されるキューの先頭 (つまり、この両端キューの最初の要素) を取得および削除します。 |
E |
pollFirst()
この両端キューの最初の要素を取得および削除します。 |
E |
pollLast()
この両端キューの最後の要素を取得および削除します。 |
E |
pop()
この両端キューで表されるスタックに要素をポップします。 |
void |
push(E e)
容量制限に違反することなしに要素をこの両端キューで表されるスタック (つまりこの両端キューの先頭) にすぐにプッシュできる場合は、そうします。 |
E |
remove()
この両端キューによって表されるキューの先頭 (つまり、この両端キューの最初の要素) を取得して削除します。 |
boolean |
remove(Object o)
指定された要素のうち最初に出現したものを、この両端キューから削除します。 |
E |
removeFirst()
この両端キューの最初の要素を取得して削除します。 |
boolean |
removeFirstOccurrence(Object o)
指定された要素のうち最初に出現したものを、この両端キューから削除します。 |
E |
removeLast()
この両端キューの最後の要素を取得して削除します。 |
boolean |
removeLastOccurrence(Object o)
指定された要素のうち最後に出現したものを、この両端キューから削除します。 |
int |
size()
この両端キュー内の要素の数を返します。 |
| インタフェース java.util.Collection から継承されたメソッド |
|---|
addAll, clear, containsAll, equals, hashCode, isEmpty, removeAll, retainAll, toArray, toArray |
| メソッドの詳細 |
|---|
void addFirst(E e)
offerFirst(E) メソッドを使用することをお勧めします。
e - 追加する要素
IllegalStateException - 容量制限のために要素をその時点で追加できない場合
ClassCastException - 指定された要素のクラスが原因で、この両端キューに要素を追加できない場合
NullPointerException - 指定された要素が null で、この両端キューが null 要素を許容しない場合
IllegalArgumentException - 指定された要素のあるプロパティーが原因で、この両端キューに要素を追加できない場合void addLast(E e)
offerLast(E) メソッドを使用することをお勧めします。
このメソッドは、add(E) と同等です。
e - 追加する要素
IllegalStateException - 容量制限のために要素をその時点で追加できない場合
ClassCastException - 指定された要素のクラスが原因で、この両端キューに要素を追加できない場合
NullPointerException - 指定された要素が null で、この両端キューが null 要素を許容しない場合
IllegalArgumentException - 指定された要素のあるプロパティーが原因で、この両端キューに要素を追加できない場合boolean offerFirst(E e)
addFirst(E) メソッドよりもこのメソッドを使用することをお勧めします。
e - 追加する要素
ClassCastException - 指定された要素のクラスが原因で、この両端キューに要素を追加できない場合
NullPointerException - 指定された要素が null で、この両端キューが null 要素を許容しない場合
IllegalArgumentException - 指定された要素のあるプロパティーが原因で、この両端キューに要素を追加できない場合boolean offerLast(E e)
addLast(E) メソッドよりもこのメソッドを使用することをお勧めします。
e - 追加する要素
ClassCastException - 指定された要素のクラスが原因で、この両端キューに要素を追加できない場合
NullPointerException - 指定された要素が null で、この両端キューが null 要素を許容しない場合
IllegalArgumentException - 指定された要素のあるプロパティーが原因で、この両端キューに要素を追加できない場合E removeFirst()
pollFirst と異なります。
NoSuchElementException - 両端キューが空の場合E removeLast()
pollLast と異なります。
NoSuchElementException - 両端キューが空の場合E pollFirst()
E pollLast()
E getFirst()
peekFirst と異なります。
NoSuchElementException - 両端キューが空の場合E getLast()
peekLast と異なります。
NoSuchElementException - 両端キューが空の場合E peekFirst()
E peekLast()
boolean removeFirstOccurrence(Object o)
o - この両端キューから削除される要素 (その要素が存在する場合)
ClassCastException - 指定された要素のクラスが、この両端キューと互換でない場合 (省略可能)
NullPointerException - 指定された要素が null であり、この両端キューが null 要素を許可しない場合 (省略可能)boolean removeLastOccurrence(Object o)
o - この両端キューから削除される要素 (その要素が存在する場合)
ClassCastException - 指定された要素のクラスが、この両端キューと互換でない場合 (省略可能)
NullPointerException - 指定された要素が null であり、この両端キューが null 要素を許可しない場合 (省略可能)boolean add(E e)
offer を使用することをお勧めします。
このメソッドは、addLast(E) と同等です。
Collection<E> 内の addQueue<E> 内の adde - 追加する要素
Collection.add(E) で指定されているとおり)
IllegalStateException - 容量制限のために要素をその時点で追加できない場合
ClassCastException - 指定された要素のクラスが原因で、この両端キューに要素を追加できない場合
NullPointerException - 指定された要素が null で、この両端キューが null 要素を許容しない場合
IllegalArgumentException - 指定された要素のあるプロパティーが原因で、この両端キューに要素を追加できない場合boolean offer(E e)
add(E) メソッドよりもこのメソッドを使用することをお勧めします。
このメソッドは、offerLast(E) と同等です。
Queue<E> 内の offere - 追加する要素
ClassCastException - 指定された要素のクラスが原因で、この両端キューに要素を追加できない場合
NullPointerException - 指定された要素が null で、この両端キューが null 要素を許容しない場合
IllegalArgumentException - 指定された要素のあるプロパティーが原因で、この両端キューに要素を追加できない場合E remove()
poll と異なります。
このメソッドは、removeFirst() と同等です。
Queue<E> 内の removeNoSuchElementException - 両端キューが空の場合E poll()
このメソッドは、pollFirst() と同等です。
Queue<E> 内の pollE element()
peek と異なります。
このメソッドは、getFirst() と同等です。
Queue<E> 内の elementNoSuchElementException - 両端キューが空の場合E peek()
このメソッドは、peekFirst() と同等です。
Queue<E> 内の peekvoid push(E e)
このメソッドは、addFirst(E) と同等です。
e - プッシュする要素
IllegalStateException - 容量制限のために要素をその時点で追加できない場合
ClassCastException - 指定された要素のクラスが原因で、この両端キューに要素を追加できない場合
NullPointerException - 指定された要素が null で、この両端キューが null 要素を許容しない場合
IllegalArgumentException - 指定された要素のあるプロパティーが原因で、この両端キューに要素を追加できない場合E pop()
このメソッドは、removeFirst() と同等です。
NoSuchElementException - 両端キューが空の場合boolean remove(Object o)
このメソッドは、removeFirstOccurrence(java.lang.Object) と同等です。
Collection<E> 内の removeo - この両端キューから削除される要素 (その要素が存在する場合)
ClassCastException - 指定された要素のクラスが、この両端キューと互換でない場合 (省略可能)
NullPointerException - 指定された要素が null であり、この両端キューが null 要素を許可しない場合 (省略可能)boolean contains(Object o)
Collection<E> 内の containso - この両端キューにあるかどうかを調べる要素
ClassCastException - 指定された要素の型が、この両端キューと互換でない場合 (省略可能)
NullPointerException - 指定された要素が null であり、この両端キューが null 要素を許可しない場合 (省略可能)int size()
Collection<E> 内の sizeIterator<E> iterator()
Collection<E> 内の iteratorIterable<E> 内の iteratorIterator<E> descendingIterator()
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。