我想返回一个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,因为我猜没有免费的东西),但这是帮助您理解概念的另一种简单方法。

TaxiisFree()分配给引用,并像这样在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;
}

09-09 21:47