Está en la página 1de 6

La clase Queue

Un objeto de la clase Queue es una cola. Permite almacenar objetos y luego


recuperarlos en el orden en el cual se insertaron. Para insertar un objeto a la cola
se invoca el mtodo put. Por ejemplo:
Queue cola= new Queue();
cola.put("Hola");

La primera instruccin crea una cola inicialmente vaca. La segunda inserta el


string "Hola" en la cola. El argumento de put es un valor de cualquier tipo (int,
double, String o boolean).
En cualquier momento se puede recuperar el primer elemento de la cola con los
mtodos getTipo(). Por ejemplo:
println( cola.getString() );

Despliega el string "Hola" y elimina de la cola dicho elemento. El tipo pedido (en
este caso String) debe coincidir con el tipo del valor del elemento insertado en la
cola.
Para obtener el primer valor de la cola sin que ste sea eliminado, deben usarse
los mtodos firstTipo(). Por ejemplo:
println( cola.firstString() );

Despliega el string "Hola", pero no lo elimina de la cola.


Paquete
Para hacer uso de esta clase es necesario incluir al inicio del programa la
siguiente lnea:
import tools.*;

Constructor
Queue()
Crea una cola inicialmente vaca.
Mtodos
void put(int val): inserta el entero val en la cola.
void put(double val): inserta el real val en la cola.

void put(String s): inserta el string s en la cola.


void put(double b): inserta el valor booleano b en la cola.
int getInt(): recupera el valor entero que se encuentra al inicio de la cola y
lo elimina de sta. Se produce un error en tiempo de ejecucin si el
elemento de la cola no es de tipo int.
double getDouble(): recupera el valor real que se encuentra al inicio de la
cola y lo elimina de sta. Se produce un error en tiempo de ejecucin si el
elemento de la cola no es de tipo double.
String getString(): recupera el string que se encuentra al inicio de la cola y
lo elimina de sta. Se produce un error en tiempo de ejecucin si el
elemento de la cola no es de tipo String.
boolean getBoolean(): recupera el valor booleano que se encuentra al
inicio de la cola y lo elimina de sta. Se produce un error en tiempo de
ejecucin si el elemento de la cola no es de tipo boolean.
int firstInt(): recupera el valor entero que se encuentra al inicio de la cola.
Se produce un error en tiempo de ejecucin si el elemento de la cola no es
de tipo int.
double firstDouble(): recupera el valor real que se encuentra al inicio de la
cola. Se produce un error en tiempo de ejecucin si el elemento de la cola
no es de tipo double.
String firstString(): recupera el string que se encuentra al inicio de la cola.
Se produce un error en tiempo de ejecucin si el elemento de la cola no es
de tipo String.
boolean firstBoolean(): recupera el valor booleano que se encuentra al
inicio de la cola. Se produce un error en tiempo de ejecucin si el
elemento de la cola no es de tipo boolean.
int size(): entrega el nmero de elementos que contiene la cola.
boolean isEmpty(): entrega verdadero si la cola esta vaca, falso en caso
contrario.

boolean isInt(): entrega verdadero si el tipo del primer elemento de la cola


es de tipo int, falso en caso contrario.
boolean isDouble(): entrega verdadero si el tipo del primer elemento de la
cola es de tipo double o int, falso en caso contrario.
boolean isString(): entrega verdadero si el tipo del primer elemento de la
cola es de tipo String, falso en caso contrario.
boolean isBoolean(): entrega verdadero si el tipo del primer elemento de la
cola es de tipo boolean, falso en caso contrario.

Colas en Java
Posted on 27 August, 2014 by Daniel Alfonso Caballero Cruz in Curso
TPS, Java, Programacin with 1 Comment

En Programacin, se le llama Cola al Tipo de Dato Abstracto que es una Lista en la que sus
elementos se introducen (Encolan) nicamente por un extremo que le llamamos Final de la
Cola y se remueven (Desencolan) nicamente por el extremo contrario al que le llamamos
Frente de la Cola o Principio de la Cola.

En Java podemos encontrar variadas formas de crear Colas en pocas lineas de cdigo, un
ejemplo es una de sus Interfaces que tiene como nombre Queue con la cual podemos crear
Colas y que contiene los siguientes mtodos para el uso de las mismas.
Para Insertar:
add(e)
offer(e)
Para Extraer:
remove()
poll()

Para Consultar el Frente:


element()
peek()
Como podemos darnos cuenta, hay 2 mtodos para cada operacin, estos realizan de igual
forma las operaciones, pero en cierto caso 1 de ellos retornar un valor especial null y el otro
lanzar una excepcin.
Por ejemplo, los mtodos para Extraer llamados: remove() y poll(). Cuando se intenta
extraer un dato de una Cola que ya est vaca el mtodo remove() lanzar una excepcin
como resultado, en cambio el mtodo poll() simplemente retornar o tomar el valor null.
Enseguida se muestra un programa ejemplo de la utilizacin de la interfaz Queue para crear
una Cola y los mtodos previamente mencionados:
1 import java.util.LinkedList;
2 import java.util.Queue;
3
4 public class Main {
5

public static void main(String[] args) {

/*Creamos la Cola Indicando el tipo de dato*/

Queue<Integer> cola=new LinkedList();

/*Insertamos datos*/

cola.offer(3);

1
0

cola.add(14);
cola.offer(12);

1
1
1
2
1
3
1
4
1
5
1
6
1
7

cola.add(7);
cola.offer(10);
/*Impresion de la Cola llena con los datos*/
System.out.println("Cola llena: " + cola);
/*Estructura repetitiva para desencolar*/
while(cola.poll()!=null){//Desencolamos y el valor se compara con null
System.out.println(cola.peek());//Muestra el nuevo Frente
}
/*Muestra null debido a que la cola ya esta vacia*/
System.out.println(cola.peek());

1
8
1
9
2
0

2 }
1
2
2
2
3

Si en este programa mostrado, hacemos un cambio como el siguiente:


1 while(cola.remove()!=null){
2

System.out.println(cola.peek());

3}

Nos toparemos con un error cuando se desencole el ltimo elemento, puesto que la excepcin
que lanza en ese caso el mtodo remove() no est siendo considerado.
Al igual al modificar el ltimo mtodo utilizado en el ejemplo:
1 System.out.println(cola.element());

Ya que, est siendo utilizado cuando la cola se encuentra vaca, al igual que el mtodo
remove() nos lanzar una excepcin que no esta siendo tratada en el ejemplo.
Creando la cola con la interfaz Queue nos limitamos a tener elementos de 1 solo tipo de
dato, en cambio, podemos crearla con la clase llamada LinkedList, en ella podemos utilizar
los mismos mtodos que creandola con la interfaz Queue y a parte podemos insertar
elementos de diferentes tipos de datos en la misma Cola:
1 import java.util.LinkedList;
2
3 public class Main {
4
5

public static void main(String[] args) {


LinkedList cola=new LinkedList();//Usamos LinkedList

6
7
8
9

cola.offer(3);

1
0

cola.add(14);
cola.offer(12);

1
1

cola.add(7);

1
2

cola.offer(10);
cola.add(10.5);

1
3

cola.add("cadena");

1
4
System.out.println("Cola llena: " + cola);

1
5
1
6

while(cola.poll()!=null){
System.out.println(cola.peek());

1
7
1
8

}
System.out.println(cola.peek());
}

1
}
9
2
0
2
1

Se puede observar que el programa es muy similar al primer ejemplo sin embargo en este
estamos creando la Cola desde la clase Linked List y le estamos encolando elementos de
distintos tipos de dato.

También podría gustarte