Foros del Web » Programación para mayores de 30 ;) » Java »

Problema NoSuchElementException

Estas en el tema de Problema NoSuchElementException en el foro de Java en Foros del Web. Buenas me salta esta excepción cuando hago un iterator de un treeSet. Mi objetivo es recorrer un treeSet de habitaciones y ver cual cumple los ...
  #1 (permalink)  
Antiguo 03/02/2019, 09:22
 
Fecha de Ingreso: abril-2016
Mensajes: 19
Antigüedad: 8 años, 1 mes
Puntos: 1
Problema NoSuchElementException

Buenas me salta esta excepción cuando hago un iterator de un treeSet. Mi objetivo es recorrer un treeSet de habitaciones y ver cual cumple los requisitos para alojar un cliente. La excepción me salta en la linea que llamo al metodoVista.

Llevo rato debugano pero no veo que puede ser. Muchas gracias!!

Código Java:
Ver original
  1. boolean habitacionReservada = false;
  2.         Iterator<Habitacion> itr = listaHabitaciones.iterator();
  3.         while (itr.hasNext()) {
  4.             if ((itr.next().getCapacidad() >= cliente.getNumCapacidad())
  5.                     && (itr.next().getEstado() == EstadoHabitacion.CLEAN)) {
  6.                 if (itr.next().getServicios().containsAll(cliente.getRequisitos())) {
  7.                     // la habitación puede ser asignada
  8.                     clienteHabitacion.put(itr.next().getId(), cliente);
  9.                     metodosVista.reservaCorrecta(itr.next(), cliente);
  10.                     habitacionReservada = true;
  11.                     break;
  12.                 }
  13.             }
  14.         }
  15.         if (!habitacionReservada) {
  16.             throw new Excepciones(Excepciones.CLIENTE_NO_ASIGNADO);
  17.             // tiene que perder 100 euros
  18.         }
  #2 (permalink)  
Antiguo 04/02/2019, 03:38
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Problema NoSuchElementException

var nextElement= null;
while (itr.hasNext()) {
nextElement = itr.next(); // Cada vez que ejecutas esta acción estás accediendo al elemento siguiente => Ejecutar una sóla vez en cada iteración
// Sustituir el resto de itr.next por nextElement para que te funcione
}
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}

Etiquetas: iterator
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:44.