English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In questo esempio, impareremo a implementare la struttura dati coda in Java.
Per comprendere questo esempio, assicurati di aver visitato prima i seguenti tutorial:
public class Queue { int SIZE = 5; int items[] = new int[SIZE]; int front, rear; Queue() { front = -1; rear = -1; {} //检查队列是否已满 boolean isFull() { if (front == 0 && rear == SIZE - 1) { return true; {} return false; {} //检查队列是否为空 boolean isEmpty() { if (front == -1) return true; else return false; {} //将元素插入队列 void enQueue(int element) { //如果队列已满 if (isFull()) { System.out.println("Queue is full"); {} else { if (front == -1) { //标记 front 表示队列的第一个元素 front = 0; {} rear++; //在后面插入元素 items[rear] = element; System.out.println("Insert " + element); {} {} //从队列中删除元素 int deQueue() { int element; //如果队列为空 if (isEmpty()) { System.out.println("Queue is empty"); return (-1); {} else { //Elimina l'elemento dalla testa della coda element = items[front]; //如果队列中只有一个元素 if (front >= rear) { front = -1; rear = -1; {} else { //将下一个元素标记为 front front++; {} System.out.println(element + " Deleted"); return (element); {} {} //显示队列元素 void display() { int i; if (isEmpty()) { System.out.println("Empty Queue"); {} else { //显示队列的front System.out.println("\nFront index-> " + front); //显示队列的元素 System.out.println("Items -> "); for (i = front; i <= rear; i++) System.out.print(items[i] + " "); //Mostra la coda posteriore System.out.println("\nIndice posteriore-> " + rear); {} {} public static void main(String[] args) { //Crea un oggetto della classe Queue Queue q = new Queue(); //Tenta di eliminare un elemento dalla coda //La coda è vuota //Non è possibile eliminare q.deQueue(); //Inserisci l'elemento nella coda for(int i = 1; i < 6; i++) { q.enQueue(i); {} //Non è possibile aggiungere il sesto elemento alla coda perché la coda è piena q.enQueue(6); q.display(); //deQueue elimina l'elemento inserito per primo, ad esempio: 1 q.deQueue(); //Ora abbiamo solo 4 elementi q.display(); {} {}
Risultato di output
La coda è vuota Inserisci 1 Inserisci 2 Inserisci 3 Inserisci 4 Inserisci 5 La coda è piena Indice anteriore-> 0 Elementi-> 1 2 3 4 5 Indice posteriore-> 4 1 Eliminato Indice anteriore-> 1 Elementi-> 2 3 4 5 Indice posteriore-> 4
Nell'esempio sopra, abbiamo implementato la struttura dati della coda in Java.
Java fornisce un'interfaccia integrata chiamata Queue per implementare code.
import java.util.Queue; import java.util.LinkedList; class Main { public static void main(String[] args) { //Utilizza la classe LinkedList per creare la coda Queue<Integer> numbers = new LinkedList<>(); //enqueue //Inserisci l'elemento alla fine della coda numbers.offer(1); numbers.offer(2); numbers.offer(3); System.out.println("Coda: " + numbers); //dequeue //Elimina l'elemento dalla testa della coda int removedNumber = numbers.poll(); System.out.println("Eliminato l'elemento: " + removedNumber); System.out.println("In coda dopo la rimozione: " + numbers); {} {}
Risultato di output
Coda: [1, 2, 3] Elemento rimosso: 1 In coda dopo la rimozione: [2, 3]
Nell'esempio sopra, abbiamo utilizzato l'interfaccia Queue Java per implementare la coda. Qui, abbiamo utilizzato la classe LinkedList per implementare l'interfaccia Queue.
Numbers.offer() - Inserire un elemento alla fine della coda
Numbers.poll() - Rimuovere un elemento dalla parte anteriore della coda
Attenzione, abbiamo utilizzato parentesi angolari <Integer> nella creazione della coda. Questo indica che la coda è un tipo generico. Per ulteriori informazioni sui generics, visitareGenerics Java.
Possiamo anche utilizzare altri interfacce e classi per sostituire Queue e LinkedList. Ad esempio,