ArrayDeque
キュー/スタック構造 – ArrayDequeクラスArrayDequeは両端キューとも呼ばれ、先頭末尾の双方から要素を出し入れできるキューの実装です。ArrayDequeを利用することで、キュー(FIFO:First In First Out)やスタック(LIFO:Last In First Out)といったデータ構造を表現できます。
ArrayDequeクラスで利用できる主なメソッドには、以下のようなものがあります。
| ArrayDequeクラスの主なメソッド | |||
|---|---|---|---|
| 種類 | 先頭 | 末尾 | 概要 |
| 挿入 | addFirst(e) | addLast(e) | 先頭/末尾に要素を追加 |
| 削除 | removeFirst() | removeLast() | 先頭/末尾から要素を取り出し |
| 検査 | getFirst() | getLast() | 先頭/末尾の要素を取得 |
削除メソッドでは要素を取得すると共に削除するのに対して、検査メソッドでは要素を取得するのみでキューから削除しません。
以下は、ArrayDequeでキュー/スタックを実装する例です。キューは末尾から要素を追加し、先頭から要素を取り出すことで、スタックは、末尾から要素を追加し、末尾から要素を取り出すことで、それぞれ表現できます。
CollQueue.java
package com.example.mynavi.collection;
import java.util.ArrayDeque;
import java.util.Deque;
public class CollQueue {
public static void main(String[] args) {
// キュー構造
Deque<String> q = new ArrayDeque<String>();
q.addLast("AAAAA");
q.addLast("BBBBB");
q.addLast("CCCCC");
System.out.println(q); // 結果:[AAAAA, BBBBB, CCCCC]
System.out.println(q.removeFirst()); // 結果:AAAAA
System.out.println(q); // 結果:[BBBBB, CCCCC]
// スタック構造
Deque<String> s = new ArrayDeque<String>();
s.addLast("AAAAA");
s.addLast("BBBBB");
s.addLast("CCCCC");
System.out.println(s); // 結果:[AAAAA, BBBBB, CCCCC]
System.out.println(s.removeLast()); // 結果:CCCCC
System.out.println(s); // 結果:[AAAAA, BBBBB]
}
}






