Cuando lo intento:
Queue<Integer> q = new Queue<Integer>();
El compilador me está dando un error. ¿Alguna ayuda?
Además, si quiero inicializar una cola, ¿tengo que implementar los métodos de la cola?
Cuando lo intento:
Queue<Integer> q = new Queue<Integer>();
El compilador me está dando un error. ¿Alguna ayuda?
Además, si quiero inicializar una cola, ¿tengo que implementar los métodos de la cola?
Queue
es una interfaz grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/…Respuestas:
A
Queue
es una interfaz, lo que significa que no puede construir unaQueue
directamente.La mejor opción es la construcción de una clase que ya implementa la
Queue
interfaz, como uno de los siguientes:AbstractQueue
,ArrayBlockingQueue
,ArrayDeque
,ConcurrentLinkedQueue
,DelayQueue
,LinkedBlockingQueue
,LinkedList
,PriorityBlockingQueue
,PriorityQueue
, oSynchronousQueue
.Una alternativa es escribir su propia clase que implemente la interfaz de cola necesaria. No es necesario, excepto en aquellos casos raros en los que desea hacer algo especial mientras que proporciona el resto de su programa con una
Queue
.Una alternativa aún menos utilizada es construir una clase anónima que implemente
Queue
. Probablemente no quieras hacer esto, pero está en la lista como una opción para cubrir todas las bases.fuente
Queue
... pero de todos modos +1.ArrayDeque
Queue
es una interfaz No puede crear una instancia de 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:o
Por lo general, elige una implementación de colección por las características de rendimiento y concurrencia que le interesan.
fuente
Dado que
Queue
es una interfaz, no puede crear una instancia de la misma como lo ilustrafuente
java.util.Queue
es una interfaz No puedes instanciar interfaces. Debe crear una instancia de una clase que implemente esa interfaz. En este caso, LinkedList es una clase de este tipo.Stack<String> stack = new Stack<>(); stack.push("a"); stack.push("b"); System.out.println(stack.pop());
import java.util.Stack;
Queue es una interfaz; no puedes construir explícitamente una cola. Tendrá que crear una instancia de una de sus clases de implementación. Algo como:
Aquí hay un enlace al tutorial de Java sobre este tema.
fuente
La interfaz Queue extiende 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:
Salida del código:
fuente
Queue es una interfaz en java, no puedes hacer eso.
En cambio, tienes dos opciones:
Opción 1:
opcion 2:
Recomiendo usar la opción 2, ya que es un poco más rápido que el otro
fuente
La cola en Java se define como una interfaz y muchas implementaciones listas para usar están presentes como parte del lanzamiento 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
También puede implementar su propia cola personalizada que implementa la interfaz de cola.
fuente
Queue
es una interfaz en java, no podrías hacer eso. tratar:fuente