Java - Queue インターフェースと関連クラス
Queue インターフェース
Queue インターフェースは J2SE 5.0 で追加されたインターフェースであり、First-In, First-Out 形式を持つ Queue データ構造を持つ。Queue インターフェースは、保存されたデータの最初のデータだけを削除できる。他のインターフェースとは異なり、データを保存するための offer()、削除するための remove()、データを取得するための element()、peek()、poll() などのメソッドを持っている。Queue インターフェースを実装した下位クラスには LinkedList、PriorityQueue がある。
Queue メソッド
| メソッド | 説明 |
|---|---|
boolean add(E e) |
Queue(キュー)にオブジェクトを入れ、成功すると true を返す。 |
boolean offer(E e) |
Queue(キュー)にオブジェクトを入れる。 |
E poll() |
Queue(キュー)からオブジェクトを返し、空であれば null を返す。 |
E peek() |
Queue(キュー)の一番下にあるオブジェクトを返し、オブジェクトをキューから削除しない。 |
E remove() |
Queue(キュー)の一番下にあるオブジェクトを返し、オブジェクトをキューから削除する。 |
PriorityQueue
PriorityQueue の例
package com.devkuma.tutorial.java.util.collection;
import java.util.Iterator;
import java.util.PriorityQueue;
import java.util.Queue;
public class PriorityQueueClass {
public static void main(String[] args) {
Queue<String> queue = new PriorityQueue<String>();
queue.add("a");
queue.add("b");
queue.add("c");
queue.add("d");
queue.add("e");
System.out.println("head element: " + queue.element());
System.out.println("head peek : " + queue.peek());
System.out.println("iterating the queue elements:");
Iterator<String> itr = queue.iterator();
while (itr.hasNext()) {
System.out.println(itr.next());
}
System.out.println("head remove : " + queue.remove());
System.out.println("head poll : " + queue.poll());
System.out.println("after removing two elements:");
Iterator<String> itr2 = queue.iterator();
while (itr2.hasNext()) {
System.out.println(itr2.next());
}
}
}
実行結果は次のとおりである。
head element: a
head peek : a
iterating the queue elements:
a
b
c
d
e
head remove : a
head poll : b
after removing two elements:
c
d
e