在我的代码中,
for(City city : country.getCities()){
// do some operations
}
Run Code Online (Sandbox Code Playgroud)
使用country.getCities()是否代价高昂?JVM是否会为每次调用维护堆栈跟踪..?
List<City> cityList = country.getCities();
for(City city : cityList){
// do some operations
}
Run Code Online (Sandbox Code Playgroud)
什么是最好的使用方法?
不,这个循环:
for(City city : country.getCities())
Run Code Online (Sandbox Code Playgroud)
只会调用country.getCities() 一次,然后迭代它.它不会为循环的每次迭代调用它.在你的情况下它相当于:
for (Iterator<City> iterator = country.getCities().iterator();
iterator.hasNext(); ) {
City city = iterator.next();
// do some operations
}
Run Code Online (Sandbox Code Playgroud)
根据你的第二个片段重写它没有任何好处.
有关更多详细信息,请参阅JLS的第14.14.2节.
| 归档时间: |
|
| 查看次数: |
771 次 |
| 最近记录: |