0% encontró este documento útil (0 votos)
41 vistas3 páginas

Introducción a Colas en Java

1) Una cola se comporta como una lista en la que las inserciones se hacen al final y las extracciones al principio, siguiendo el orden FIFO. 2) El programa crea colas usando LinkedList e implementa la interfaz Queue, permitiendo agregar elementos al final de la cola y extraerlos del principio. 3) Una PriorityQueue ordena los elementos de la cola según su valor, de modo que los menores valores tienen prioridad y son extraídos primero.

Cargado por

GABRIELA
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
41 vistas3 páginas

Introducción a Colas en Java

1) Una cola se comporta como una lista en la que las inserciones se hacen al final y las extracciones al principio, siguiendo el orden FIFO. 2) El programa crea colas usando LinkedList e implementa la interfaz Queue, permitiendo agregar elementos al final de la cola y extraerlos del principio. 3) Una PriorityQueue ordena los elementos de la cola según su valor, de modo que los menores valores tienen prioridad y son extraídos primero.

Cargado por

GABRIELA
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Queue

Una lista se comporta como una cola si las inserciones las hacemos al final y las
extracciones las hacemos por el frente de la lista. También se las llama listas FIFO
(First In First Out - primero en entrar primero en salir)
Confeccionaremos un programa que permita utilizar la interfaz Queue y mediante la
clase LinkedList administre la lista tipo cola.

Programa:

import [Link];
import [Link];

public class PruebaQueue {

public static void main(String[] args) {


Queue<String> cola1 = new LinkedList<String>();
[Link]("Insertamos tres elementos en la cola:
juan, ana y luis");
[Link]("juan");
[Link]("ana");
[Link]("luis");
[Link]("Cantidad de elementos en la cola:" +
[Link]());
[Link]("Extraemos un elemento de la cola:" +
[Link]());
[Link]("Cantidad de elementos en la cola:" +
[Link]());
[Link]("Consultamos el primer elemento de la
cola sin extraerlo:" + [Link]());
[Link]("Cantidad de elementos en la cola:" +
[Link]());
[Link]("Extraemos uno a un cada elemento de la
cola mientras no este vacía:");
while (![Link]())
[Link]([Link]() + "-");
[Link]();

Queue<Integer> cola2 = new LinkedList<Integer>();


[Link](70);
[Link](120);
[Link](6);
[Link]("Imprimimos la cola de enteros");
for (Integer elemento : cola2)
[Link](elemento + "-");
[Link]();
[Link]("Borramos toda la cola");
[Link]();
[Link]("Cantidad de elementos en la cola de
enteros:" + [Link]());
}

}
La diferencia con respecto a la administración de pilas en Java es que para trabajar
con colas debemos crear un objeto de la clase LinkedList e implementar la interfaz
Queue:
Queue<String> cola1 = new LinkedList<String>();
La clase LinkedList implementa la interfaz Queue que es la que declara los método
principales para trabajar una cola.
Añadimos elementos al final de la cola mediante el método 'add':
[Link]("juan");
[Link]("ana");
[Link]("luis");
Para conocer la cantidad disponemos del método size():
[Link]("Cantidad de elementos en la cola:" +
[Link]());
Para extraer el nodo de principio de la lista tipo cola lo hacemos mediante el método
'poll':
[Link]("Extraemos un elemento de la cola:" +
[Link]());
Si queremos conocer el objeto primero de la cola sin extraerlo lo hacemos mediante
el método 'peek':
[Link]("Consultamos el primer elemento de la cola
sin extraerlo:" + [Link]());
Para conocer si la cola se encuentra vacía llamamos al método 'isEmpty':
while (![Link]())
[Link]([Link]() + "-");
Podemos utilizar un for para recorrer todos los elementos de la colección de tipo
Queue con la siguiente sintaxis (no se eliminan los elementos de la cola):
for (Integer elemento : cola2)
[Link](elemento + "-");
Para eliminar todos los elementos de una pila empleamos el método clear:
[Link]();
Más datos podemos conseguir visitando la documentación oficial de la
interfaz Queue.
PriorityQueue
Una variante de una cola clásica la implementa la clase PriorityQueue. Cuando se
agregan elementos a la cola se organiza según su valor, por ejemplo si es un
número se ingresan de menor a mayor.
Veamos un ejemplo como se organizan los valores en la cola con prioridad:
Programa:

import [Link];

public class PruebaPriorityQueue {

public static void main(String[] args) {


PriorityQueue<Integer> cola1 = new
PriorityQueue<Integer>();
[Link](70);
[Link](120);
[Link](6);
[Link]("Imprimimos la cola con prioridades de
enteros");
while (![Link]())
[Link]([Link]() + "-");
}

}
Creamos un objeto de la clase PriorityQueue que almacene objetos de la clase
Integer:
PriorityQueue<Integer> cola1 = new
PriorityQueue<Integer>();
Cargamos tres objetos en la cola de prioridad:
[Link](70);
[Link](120);
[Link](6);
Mediante un while comenzamos a recuperar los elementos de la cola con prioridad
y podemos comprobar que el primero de la cola es el que tiene el valor 6, luego el
70 y finalmente el 120:
while (![Link]())
[Link]([Link]() + "-");

También podría gustarte