如果我在Java中这样做:for(String s : myCollection.expensiveListGeneration()) { doSomething(); } 在开始或每个循环迭代中是否仅调用一次一次昂贵的ListGeneration()?是否依赖于实现? 最佳答案 因为它等效于使用迭代器,所以等效于调用collections。 iterator()方法,它被调用一次。