java.util.ArrayDequeは先頭と末尾の両方から要素の追加や削除ができるデータ構造です。
両端キューとも呼ばれます。
java.util.ArrayDequeの特徴
ArrayDequeは以下の特徴があります。
- FIFO(先入れ先出し)、LIFO(先入れ後出し)の両方の形式に対応する
- 要素の重複は可能
- null要素は不可
- マルチスレッドには非対応
java.util.ArrayDequeの継承・実装
継承クラス
・java.lang.Object
・java.util.AbstractCollection<E>
・java.util.ArrayDeque<E>
実装インターフェース
・java.io.Serializable
・java.lang.Cloneable
・java.lang.Iterable<E>
・java.util.Collection<E>
・java.util.Deque<E>
・java.util.Queue<E>
導入バージョン
・JDK1.6
java.util.ArrayDequeのAPI
戻値型 | メソッド | 静的 | 説明 |
---|---|---|---|
boolean | add(E e) | 要素eを両端キューの末尾に追加する | |
void | addFirst(E e) | 要素eを両端キューの先頭に追加する | |
void | addLast(E e) | 要素eを両端キューの末尾に追加する | |
void | clear() | 全ての要素を両端キューから削除する | |
ArrayDeque | clone() | 両端キューの複製を返す | |
boolean | contains(Object o) | 要素oが両端キューに含まれている場合はtrueを返す | |
E | getFirst() | 両端キューの最初の要素を取得する (削除はしない) | |
E | getLast() | 両端キューの最後の要素を取得する (削除はしない) | |
boolean | isEmpty() | 両端キューに要素が無い場合にtrueを返す | |
boolean | offer(E e) | 要素eを両端キューの末尾に挿入する | |
boolean | offerFirst(E e) | 要素eを両端キューの先頭に挿入する | |
boolean | offerLast(E e) | 要素eを両端キューの末尾に挿入する | |
E | peek() | 両端キューの先頭の要素を取得する (削除はしない) | |
E | peekFirst() | 両端キューの最初の要素を取得する (削除はしない) | |
E | peekLast() | 両端キューの最後の要素を取得する (削除はしない) | |
E | poll() | 両端キューの先頭の要素を取得する (削除もする) | |
E | pollFirst() | 両端キューの最初の要素を取得する (削除もする) | |
E | pollLast() | 両端キューの最後の要素を取得する (削除もする) | |
E | pop() | 両端キューで表されるスタックに要素をポップする | |
void | push(E e) | 両端キューで表されるスタックに要素をプッシュする | |
E | remove() | 両端キューが表すキューの先頭を取得して削除する | |
E | removeFirst() | 両端キューの最初の要素を取得して削除する | |
E | removeLast() | 両端キューの最後の要素を取得して削除する | |
int | size() | 両端キューの要素数を返す |
java.util.ArrayDequeサンプル
- (先入れ先出し – 取得した要素は削除しない)
-
Deque<String> deq = new ArrayDeque<String>(); deq.addLast("A"); deq.addLast("B"); deq.addLast("C"); System.out.println(deq.peekFirst()); //A System.out.println(deq); //[A, B, C]
- (先入れ先出し – 取得した要素は削除する)
-
Deque<String> deq = new ArrayDeque<String>(); deq.addLast("A"); deq.addLast("B"); deq.addLast("C"); System.out.println(deq.pollFirst()); //A System.out.println(deq); //[B, C]
- (先入れ後出し – 取得した要素は削除しない)
-
Deque<String> deq = new ArrayDeque<String>(); deq.addLast("A"); deq.addLast("B"); deq.addLast("C"); System.out.println(deq.peekLast()); //C System.out.println(deq); //[A, B, C]
- (先入れ後出し – 取得した要素は削除する)
-
Deque<String> deq = new ArrayDeque<String>(); deq.addLast("A"); deq.addLast("B"); deq.addLast("C"); System.out.println(deq.pollLast()); //C System.out.println(deq); //[A, B]
コメント