キューのデータ構造は先入れ先出し (FIFO) 原理を使用します。これは、処理対象のオブジェクトを到着順に保持するために使用されます。これは、行列に並ぶ人々の列と非常によく似ています。 Java は Collection インターフェースの形式でデータ構造を大規模にサポートしているため、キューは Collection インターフェースで使用できるインターフェースです。これは Collection インターフェイスを拡張します。これは Java.util パッケージで使用でき、コレクション インターフェイスで使用できるすべての操作と、いくつかの追加の抽出、挿入、および検査操作をサポートします。
無料ソフトウェア開発コースを始めましょう
Web 開発、プログラミング言語、ソフトウェア テスト、その他
構文:
Interface Queue<E>
キューはクラスではなくインターフェースであるため、直接インスタンス化することはできません。この宣言は、キューがコレクションと同様に値をジェネリックとして受け入れ、任意のオブジェクトをキューに渡すことができることを示しています。 Java には Queue インターフェイスの実装が複数あり、Queue の使用中に使用できます。それは LinkedList と PriorityQueue です。
キューは次のように宣言できます:
Queue< Object > q = new LinkedList<>();
Queue< Object > q = new PriorityQueue<>();
Java のキュー メンバーの種類
キューで使用可能なすべてのメソッドを以下に示します:
Returns special value | Throws exception | |
Insert | offer(e) | add(e) |
Remove | poll() | remove() |
Examine | peek() | element() |
So as explained, two types of methods throw an exception and return a special value. There are three types of operation in this kind of operation: insertion, the second is removal, and the third is retrieval or examination. In the case of the remove operation, an object will be removed from the queue. Still, in the case of examination, the object will be returned without actually removing from the queue.
Given below are the different examples of Queue in Java:
Code:
import java.util.LinkedList; import java.util.Queue; public class QueueOperations { public static void main(String[] args) { Queue<Integer> q = new LinkedList<Integer> (); q.add(5); q.add(2); q.add(1); q.add(4); q.add(3); System.out.println(q); } }
Output:
Note here that the order of insertion is the same with output from left to write.
Code:
import java.util.LinkedList; import java.util.Queue; public class QueueOperations { public static void main(String[] args) { Queue<Integer> q = new LinkedList<Integer> (); q.add(5); q.add(2); q.add(1); q.add(4); q.add(3); System.out.println(q); while (!q.isEmpty()) { System.out.print(q.remove() + " "); } System.out.println(""); System.out.println(q); } }
Output:
Here, we have used the function isEmpty() to check when the queue becomes empty after removing elements. The removal order is the same as per the insertion. After removing all the elements, we printed the queue and obtained an empty bracket at the end.
Code:
import java.util.PriorityQueue; import java.util.Queue; public class QueueOperations { public static void main(String[] args) { Queue<Integer> q = new PriorityQueue<Integer> (); q.add(5); q.add(2); q.add(1); q.add(4); q.add(3); System.out.println(q); while (!q.isEmpty()) { System.out.print(q.remove() + " "); } System.out.println(""); System.out.println(q); } }
Output:
Here, we have used PriorityQueue, which will hold and return the elements depending upon the elements’ natural ordering or upon the comparator, if any passed. Note the insertion order and removal orders are not the same. The removal is based totally on the value of elements.
Code:
import java.util.LinkedList; import java.util.Queue; public class QueueOperations { public static void main(String[] args) { Queue<Integer> q = new LinkedList<Integer> (); q.add(5); q.add(2); q.add(1); q.add(4); q.add(3); System.out.println(q); System.out.println( q.peek() ); System.out.println(q); } }
Output:
Note here that we have used the peek() function, which will return the head of the queue without actually removing it. We printed the queue after performing the peek operation, and you can observe that the head element, which is 5, remains unchanged in the queue.
Code:
import java.util.PriorityQueue; import java.util.Queue; public class QueueOperations { public static void main(String[] args) { Queue<Integer> q = new PriorityQueue<Integer> (); q.add(5); q.add(2); q.add(1); q.add(4); q.add(3); System.out.println(q); System.out.println( q.peek() ); System.out.println(q); } }
Output:
This is similar to the previous example’s LinkedList operation, but note the head element is 1 because it’s a PriorityQueue.
Java utilizes the Queue interface as a means to maintain elements in insertion order. It supports operations like insertion, retrieval, and removal. There are alternative methods available for all the methods. We have seen examples of the most commonly used methods in queue operation.
以上がJavaのキューの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。