【发布时间】:2011-12-02 22:43:02
【问题描述】:
是否可以在增强的 for 循环中找到当前索引?如果有怎么办?
我知道我们可以用一个额外的变量来检查它。但是有没有其他办法。
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..
}
}
}
}
【问题讨论】:
-
这没有任何意义:
if (list.size() < 0)。也许你的意思是==? -
即使您确实有索引,尝试在增强的 for 循环中从列表中删除元素也会导致 ConcurrentModificationException。使用@aioobe 建议的迭代器