Buscar publicaciones

Clase Cola en Java

De forma similar a como hice en el post anterior (Clase Pila en Java), basado en Cola Estática, hice mi implementación de una clase Cola.

Antes de ver el código, una pequeña observación:

  • La clase Vector la utilizo para guardar cada elemento de la cola
  • Con los atributos inicio y fin, ubico el inicio y el fin de la cola.
  • Cuando desencolo, actualizo el atributo inicio (pero no elimino el elemento de mi clase Vector).
  • Si elijo eliminarlo, no necesito de los atributos inicio y fin, solo me bastaría un atributo size, pues cuando elimino el elemento de la clase Vector, esta me reindexa los elementos disponibles.

En el código, podemos ver ambas alternativas:

  • Eliminando el elemento de la clase Vector , con un único atributo size para la clase.
  • Sin eliminar el elemento y haciendo uso de los atributos inicio y fin (estas líneas podrán verlas comentadas)



[JAVA]
package colas;

import java.util.Vector;

public class Cola {

//private int inicio;
//private int fin;
private int size;
private Vector elementos;

public Cola() {
super();
elementos = new Vector();
//inicio = fin = 0;
size = 0;
}

public boolean colaVacia () {
//if ( (fin-inicio)==0) {
if ( size==0) {
return true;
}
return false;
}

public void encolar ( Tipo o ) {
//elementos.add(fin++, o);
elementos.add(size++, o);
}

public Tipo desencolar () {
Tipo retorno;

try {
if(colaVacia())
throw new ErrorColaVacia();
else {
//return elementos.get(inicio++);
retorno = elementos.get(0);
elementos.remove(0);
size--;
return retorno;
}
} catch(ErrorColaVacia error) {
System.out.println("ERROR: la cola esta vacía");
return null;
}
}

/*
public int getFin() {
return fin;
}

public int getInicio() {
return inicio;
}
*/
public int getSize() {
//return (fin-inicio);
return (size);
}
}

@SuppressWarnings("serial")
class ErrorColaVacia extends Exception {
public ErrorColaVacia() {
super();
}
}
[/JAVA]


[JAVA]
package colas;

public class Test {

@SuppressWarnings("unchecked")
public static void main(String[] args) {
Cola cola;

cola = new Cola();
System.out.println("Elementos en cola: " + cola.getSize());

cola.encolar("Uno");
System.out.println("Elementos en cola: " + cola.getSize());

cola.encolar("Dos");
System.out.println("Elementos en cola: " + cola.getSize());

System.out.println("Extraigo.........: " + cola.desencolar().toString());
System.out.println("Elementos en cola: " + cola.getSize());

cola.encolar("Tres");
System.out.println("Elementos en cola: " + cola.getSize());

System.out.println("Extraigo.........: " + cola.desencolar().toString());
System.out.println("Elementos en cola: " + cola.getSize());

System.out.println("Extraigo.........: " + cola.desencolar().toString());
System.out.println("Elementos en cola: " + cola.getSize());

System.out.println("Extraigo.........: " + cola.desencolar().toString());
System.out.println("Elementos en cola: " + cola.getSize());

}

}
[/JAVA]

13 comments on Clase Cola en Java

  1. viejo… necesito que me hagas un favor urgente jejeje…. es que necesito saber como hago para comparar lo que me entre a mi cola… para tenerle prioridad a algunas cosas…
    te pongo un ejemplo simple y ojala me de a entender:

    tengo pacientes de urgencias; entran a mi cola dependiendo el color que les ponga de prioridad, y hay dos clases de rojos… entonces necesito compara lo que le entre a mi cola para ver que puede salir de ella mas rapido y/o primero que el resto de paciente!!!

    si me puedes ayudar te lo agradezco mucho!
    gracias de ante mano.
    saludos!

  2. necesito un favorsote me pueden ayudar con este programa es de pilas:
    Se tiene un almacén donde se encuentran las neveras fabricadas por una planta, las primeras neveras que fueron fabricadas están de últimas, dentro del almacén y las últimas neveras fabricadas, aparecen de primeras dentro del almacén. Los datos de cada nevera son código y descripción. El almacén dispone de una sola puerta, por donde entran las neveras a ser almacenadas y salen las neveras que se van a distribuir a las tiendas. Adicionalmente, se tiene una cola de solicitudes de neveras realizadas por las tiendas, donde aparece el nombre de la tienda y la cantidad solicitada de neveras, elabore un algoritmo que permita asignar a cada tienda las neveras, generando una nueva estructura que contenga la tienda y el código de las neveras asignadas para las ordenes de salidas de las mismas.

  3. hola tengo un problemita me gustaria saber como puedo hacer una cola en java
    pero solo utilizando metodos ya que no puedo usar palabras reservadas, para ello
    debo crear los metodos
    estado de la cola si esta llena o vacia y que elementos tiene en ella
    llenar la cola
    buscar un elemento en la cola
    eliminar el primer elemento de la cola y recorrer los demas al principio
    y mostrar la cola plis si pudieras darme una idea de la estructura te lo agradeceria

  4. tengo problemas con un programa en donde tengo que hacer una comunicacion ente hilos y una motorizacion porfas aiiudame porkee mii cerebroo iia no da pa mass la vdd no see komo empesar algoo asiii…. 🙁 porfas aiiudame…..

  5. algien m podria ayudar con un programa de colas donde tengo k simular el planteamiemto d un problema real de centro comercial donde simulemos el tiempo en el k las personas tardan en ser atendidos……en java x fis 🙁

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *