Czy można znaleźć obecny indeks w ulepszonej pętli for? Jeśli tak to jak?Czy można znaleźć obecny indeks w ulepszonej pętli for?
Mam świadomość, że możemy to sprawdzić za pomocą dodatkowej zmiennej. Ale jest jakakolwiek inna droga.
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..
}
}
}
}
To nie ma żadnego sensu: 'if (list.size() <0)'. Może zamiast tego miałeś na myśli '=='? –
Sprawdź to. http://stackoverflow.com/questions/1196586/calling-remove-in-foreach-loop-in-java – Vaandu
Nawet jeśli nie mają indeks, próbując usunąć element z listy w udoskonalona dla pętla spowoduje wyjątek ConcurrentModificationException. Użyj iteratora zgodnie z sugestią @aioobe –