我想返回一个List
的元素,该元素在循环之外通过for-each循环循环通过。
这是我的方法:
private List<Taxi> taxis = new ArrayList<Taxi>();
Taxi scheduleTaxi(){
for (Taxi taxi : taxis){
if (taxi.isFree()) {
return taxi;
}
}
return null; //I would like it to return taxi not null
}
有什么建议么?谢谢
最佳答案
您写的内容是完全正确的(您可能会得到null,因为我猜没有免费的东西),但这是帮助您理解概念的另一种简单方法。
将Taxi
的isFree()
分配给引用,并像这样在for循环外返回它,
private List<Taxi> taxis = new ArrayList<Taxi>();
Taxi freeTaxi = null;
Taxi scheduleTaxi(){
for (Taxi taxi : taxis){
if (taxi.isFree()) {
freeTaxi = taxi;
break; //since you already found what you want, no need to keep going.
}
}
return freeTaxi;
}