que mejorado loop for estructura español ejemplos ciclos bucle java for-loop

mejorado - for loop java español



¿Es posible encontrar el índice presente en un bucle for mejorado? (3)

¿Es posible encontrar el índice presente en un bucle for mejorado?

Para obtener el índice, puede usar List.indexOf(object) .

He usado estas técnicas para obtener el índice del objeto actual en una lista. Por ejemplo, dado anteriormente, la eliminación se puede hacer de dos maneras.

  • Usar instancia de objeto para eliminar el objeto.

public boolean cancelTicket(Flight f, Customer c) { List<BookingDetails> l = c.getBooking(); if (l.size() < 0) { return false; } else { for (BookingDetails bd : l) { if(bd.getFlight()==f){ l.remove(bd) // Object Instance here.. } } } }

  • Usando List.indexOf (index)

public boolean cancelTicket(Flight f, Customer c) { List<BookingDetails> l = c.getBooking(); if (l.size() < 0) { return false; } else { for (BookingDetails bd : l) { if(bd.getFlight()==f){ l.remove(l.indexOf(bd)) // index Number here.. } } } }

Esta pregunta ya tiene una respuesta aquí:

¿Es posible encontrar el índice presente en un bucle for mejorado? ¿Si es así, cómo?

Soy consciente de que podemos verificarlo con una variable adicional. Pero hay alguna otra manera.

public boolean cancelTicket(Flight f, Customer c) { List<BookingDetails> l = c.getBooking(); if (l.size() < 0) { return false; } else { for (BookingDetails bd : l) { if(bd.getFlight()==f){ l.remove() // Index here.. } } } }


¿Es posible encontrar el índice presente en un bucle for mejorado?

No. Si necesita el índice, le sugiero que use un bucle for normal.

Sin embargo, en realidad no parece necesitar el índice en esta situación. A menos que esté tratando con un tipo de lista realmente extraño, puede ir con un Iterator y usar el método Iterator.remove() , como este:

public boolean cancelTicket(Flight f, Customer c) { Iterator<BookingDetails> bdIter = c.getBooking().iterator(); if (!bdIter.hasNext()) return false; while (bdIter.hasNext()) if (bdIter.next().getFlight() == f) bdIter.remove(); return true; }


Sí, use un contador antes de la instrucción for. como tal:

int i = 0; for (int s : ss) { // Some Code System.out.println(i); i++; }