
Problema con listas
Publicado por M2 (5 intervenciones) el 29/05/2013 11:03:27
Hola, Muchas gracias de ante mano, tengo un problema con listas, trata de un ejercicio en el que hay una lista repostando que no puede haber mas de 5 pero el problema es q d esa lista debo repartirla en 5 que son los surtidores y si estan ocupados los coches deberan estar en la lista de cola de espera.
Mi codigo es el siguiente:
public void repostar(Coche coche)throws InterruptedException {
// while(coches<=5){
colaEspera.sacar(coche.obtenerId()); //Sacamos el coche de la cola.
//repostando.meter(coche.obtenerId()); //Introducimos el coche en la
//lista de repostar.
if (cocheSurtidor1 <1) {
surtidor1.meter(coche.obtenerId());
cocheSurtidor1++;
}
else{
if (cocheSurtidor2 <1) {
surtidor2.meter(coche.obtenerId());
cocheSurtidor2++;
}
else{
if (cocheSurtidor3 <1) {
surtidor3.meter(coche.obtenerId());
cocheSurtidor3++;
}
else{
if (cocheSurtidor4 <1) {
surtidor4.meter(coche.obtenerId());
cocheSurtidor4++;
}
else{
if (cocheSurtidor5 <1) {
surtidor5.meter(coche.obtenerId());
cocheSurtidor5++;
}
else{
colaEspera.meter(coche.obtenerId());
}
}}}}
synchronized (this) {
coches++; //Aumentamos el número de coches repostados.
}
try {
coche.sleep(800); //reposta en 0.8 seg.
} catch(InterruptedException e){}
}
public void salir(Coche coche) {
repostando.sacar(coche.obtenerId()); //Sacamos el coche de la lista
//de repostar.
if (cocheSurtidor1 >0) {
surtidor1.sacar(coche.obtenerId());
cocheSurtidor1--;
}
if (cocheSurtidor2 >0) {
surtidor2.sacar(coche.obtenerId());
cocheSurtidor2--;
}
if (cocheSurtidor3 >0) {
surtidor3.sacar(coche.obtenerId());
cocheSurtidor3--;
}
if (cocheSurtidor4 >0) {
surtidor4.sacar(coche.obtenerId());
cocheSurtidor4--;
}
if (cocheSurtidor5 >0) {
surtidor5.sacar(coche.obtenerId());
cocheSurtidor5--;
}
actualizar.refrescar();
coche.cambiarSentido(1); //Cambiamos el sentido de la marcha del
//coche (1 indica hacia la ciudad).
semaforo.release(); //Liberamos un permiso del semáforo.
}
Mi codigo es el siguiente:
public void repostar(Coche coche)throws InterruptedException {
// while(coches<=5){
colaEspera.sacar(coche.obtenerId()); //Sacamos el coche de la cola.
//repostando.meter(coche.obtenerId()); //Introducimos el coche en la
//lista de repostar.
if (cocheSurtidor1 <1) {
surtidor1.meter(coche.obtenerId());
cocheSurtidor1++;
}
else{
if (cocheSurtidor2 <1) {
surtidor2.meter(coche.obtenerId());
cocheSurtidor2++;
}
else{
if (cocheSurtidor3 <1) {
surtidor3.meter(coche.obtenerId());
cocheSurtidor3++;
}
else{
if (cocheSurtidor4 <1) {
surtidor4.meter(coche.obtenerId());
cocheSurtidor4++;
}
else{
if (cocheSurtidor5 <1) {
surtidor5.meter(coche.obtenerId());
cocheSurtidor5++;
}
else{
colaEspera.meter(coche.obtenerId());
}
}}}}
synchronized (this) {
coches++; //Aumentamos el número de coches repostados.
}
try {
coche.sleep(800); //reposta en 0.8 seg.
} catch(InterruptedException e){}
}
public void salir(Coche coche) {
repostando.sacar(coche.obtenerId()); //Sacamos el coche de la lista
//de repostar.
if (cocheSurtidor1 >0) {
surtidor1.sacar(coche.obtenerId());
cocheSurtidor1--;
}
if (cocheSurtidor2 >0) {
surtidor2.sacar(coche.obtenerId());
cocheSurtidor2--;
}
if (cocheSurtidor3 >0) {
surtidor3.sacar(coche.obtenerId());
cocheSurtidor3--;
}
if (cocheSurtidor4 >0) {
surtidor4.sacar(coche.obtenerId());
cocheSurtidor4--;
}
if (cocheSurtidor5 >0) {
surtidor5.sacar(coche.obtenerId());
cocheSurtidor5--;
}
actualizar.refrescar();
coche.cambiarSentido(1); //Cambiamos el sentido de la marcha del
//coche (1 indica hacia la ciudad).
semaforo.release(); //Liberamos un permiso del semáforo.
}
Valora esta pregunta


0