¿Cómo instalo un objeto Queue en Java?

Cuando bash:

Queue q = new Queue(); 

el comstackdor me está dando un error. ¿Alguna ayuda?

Además, si quiero inicializar una cola, ¿debo implementar los métodos de la cola?

Una Queue es una interfaz, lo que significa que no puede construir una Queue directamente.

La mejor opción es ArrayBlockingQueue una clase que ya implemente la interfaz Queue , como una de las siguientes: AbstractQueue , ArrayBlockingQueue , ConcurrentLinkedQueue , DelayQueue , LinkedBlockingQueue , LinkedList , PriorityBlockingQueue , PriorityQueue o SynchronousQueue .

Una alternativa es escribir su propia clase que implemente la interfaz de cola necesaria. No es necesario, excepto en los raros casos en los que desea hacer algo especial mientras proporciona al rest de su progtwig una Queue .

 public class MyQueue implements Queue { public T element() { ... your code to return an element goes here ... } public boolean offer(T element) { ... your code to accept a submission offer goes here ... } ... etc ... } 

Una alternativa aún menos utilizada es construir una clase anónima que implemente Queue . Probablemente no quiera hacer esto, pero está listado como una opción por el bien de cubrir todas las bases.

 new Queue() { public Tree element() { ... }; public boolean offer(Tree element) { ... }; ... }; 

Queue es una interfaz. No puede instanciar una interfaz directamente, excepto a través de una clase interna anónima. Por lo general, esto no es lo que quieres hacer para una colección. En su lugar, elija una implementación existente. Por ejemplo:

 Queue q = new LinkedList(); 

o

 Queue q = new ArrayDeque(); 

Normalmente elige una implementación de colección según las características de rendimiento y simultaneidad que le interesan.

 Queue qe=new LinkedList(); qe.add("b"); qe.add("a"); qe.add("c"); 

Como Queue es una interfaz, no puede crear una instancia de la misma como lo ilustró

Queue es una interfaz, no puede construir explícitamente una cola, tendrá que instanciar una de sus clases de implementación. Algo como:

 Queue linkedList = new LinkedList(); 

Hay un enlace al tutorial de Java sobre este tema.

enter image description here

La interfaz Queue amplía java.util.Collection con operaciones adicionales de inserción, extracción e inspección como:

+offer(element: E): booleano // Insertar un elemento

+poll(): E // Recupera el elemento y devuelve NULL si la cola está vacía

+remove(): E // Recupera y elimina el elemento y lanza una excepción si la cola está vacía

+peek(): E // Recupera, pero no elimina, el encabezado de esta cola, devolviendo nulo si esta cola está vacía.

+element(): E // Recupera, pero no elimina, el encabezado de esta cola, emite una excepción si la cola está vacía.

Código de ejemplo para implementar Queue:

 java.util.Queue queue = new LinkedList<>(); queue.offer("Hello"); queue.offer("StackOverFlow"); queue.offer("User"); System.out.println(queue.peek()); while (queue.size() > 0){ System.out.println(queue.remove() + " "); } //Since Queue is empty now so this will return NULL System.out.println(queue.peek()); 

Salida del código:

 Hello Hello StackOverFlow User null 

Queue es una interfaz en Java, no puedes hacer eso.

En cambio, tienes dos opciones:

Opción 1:

 Queue Q = new LinkedList<>(); 

opcion 2:

 Queue Q = new ArrayDeque<>(); 

Recomiendo usar option2 ya que es un poco más rápido que el otro

Queue en Java se define como una interfaz y muchas implementaciones listas para usar están presentes como parte de la versión de JDK. Aquí hay algunos: LinkedList , Priority Queue, ArrayBlockingQueue, ConcurrentLinkedQueue, Linked Transfer Queue, Synchronous Queue, etc.

SO Puede crear cualquiera de estas clases y mantenerla como referencia de cola. por ejemplo

 import java.util.LinkedList; import java.util.Queue; public class QueueExample { public static void main (String[] args) { Queue que = new LinkedList(); que.add("first"); que.offer("second"); que.offer("third"); System.out.println("Queue Print:: " + que); String head = que.element(); System.out.println("Head element:: " + head); String element1 = que.poll(); System.out.println("Removed Element:: " + element1); System.out.println("Queue Print after poll:: " + que); String element2 = que.remove(); System.out.println("Removed Element:: " + element2); System.out.println("Queue Print after remove:: " + que); } } 

También puede implementar su propia interfaz Queue implementada Queue personalizada.

Queue es una interfaz en Java, no podrías hacer eso. tratar:

 Queue Q = new LinkedList();