首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

循环方法多,咱该优先选哪个解决思路

2012-02-10 
循环方法多,咱该优先选哪个我是Java初学者,这个问题一直困扰着我,请教高人指点比如说我写几个循环Java cod

循环方法多,咱该优先选哪个
我是Java初学者,这个问题一直困扰着我,请教高人指点
比如说我写几个循环

Java code
List<Var> vars= new ArrayList<Var>();for (int i = 0; i < vars.size(); i++) {    Var var = vars.get(i);         //……}/*-----------------------------------------------*/for (Iterator<Var> it = vars.iterator(); it.hasNext();) {//用迭代器会有内部锁定,效率应给不会高    Var var = it.next();         //……}/*-----------------------------------------------*/Iterator<Var> it = vars.iterator();//同上while(it.hasNext()){    Var var = it.next();         //……}/*-----------------------------------------------*/for (Var temp_var : vars) {//这个是foreach迭代,不知道底层是iterator,不是的话拜托各位高手解释    Var var = temp_var;         //……}

我举这几个例子,就这些循环中哪个效率会更高呢?
如果有更高效的循环,也请与大家分享,谢谢。



[解决办法]
优先使用foreach。理由:
1 访问数组与容器等(Iterable)方式统一
2 速度上,并不慢(下面会特别讲效率)
缺点:
没法直接获取循环下标

补充:
1 lz的第3种方式属于坚决需要消灭的方式,最小化变量使用范围。
Java code
Iterator<Var> it = vars.iterator();//同上while(it.hasNext()){    Var var = it.next();         //……}Iterator<Var> it2 = vars.iterator();//同上while(it.hasNext()){    Var var = it.next();         //……} 

热点排行