是否可以在增强的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

回到顶部