是否可以在增强的for循环中找到当前索引?
是否可以在增强的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..
}
}
}
}
回答:
不。如果需要索引,建议您使用普通的for循环。
但是,在这种情况下,您似乎实际上并不需要索引。除非您要处理某种非常奇怪的列表类型,否则可以使用Iterator
和使用Iterator.remove()
方法,如下所示:
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;
}
以上是 是否可以在增强的for循环中找到当前索引? 的全部内容, 来源链接: utcz.com/qa/411801.html