[API] java.util.ArrayDequeクラス

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

【ArrayDeque主要メソッド】
戻値型メソッド静的説明
booleanadd(E e)要素eを両端キューの末尾に追加する
voidaddFirst(E e)要素eを両端キューの先頭に追加する
voidaddLast(E e)要素eを両端キューの末尾に追加する
voidclear()全ての要素を両端キューから削除する
ArrayDequeclone()両端キューの複製を返す
booleancontains(Object o)要素oが両端キューに含まれている場合はtrueを返す
EgetFirst()両端キューの最初の要素を取得する
(削除はしない)
EgetLast()両端キューの最後の要素を取得する
(削除はしない)
booleanisEmpty()両端キューに要素が無い場合にtrueを返す
booleanoffer(E e)要素eを両端キューの末尾に挿入する
booleanofferFirst(E e)要素eを両端キューの先頭に挿入する
booleanofferLast(E e)要素eを両端キューの末尾に挿入する
Epeek()両端キューの先頭の要素を取得する
(削除はしない)
EpeekFirst()両端キューの最初の要素を取得する
(削除はしない)
EpeekLast()両端キューの最後の要素を取得する
(削除はしない)
Epoll()両端キューの先頭の要素を取得する
(削除もする)
EpollFirst()両端キューの最初の要素を取得する
(削除もする)
EpollLast()両端キューの最後の要素を取得する
(削除もする)
Epop()両端キューで表されるスタックに要素をポップする
voidpush(E e)両端キューで表されるスタックに要素をプッシュする
Eremove()両端キューが表すキューの先頭を取得して削除する
EremoveFirst()両端キューの最初の要素を取得して削除する
EremoveLast()両端キューの最後の要素を取得して削除する
intsize()両端キューの要素数を返す

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]

コメント

タイトルとURLをコピーしました