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] } }