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

关于list的两个访问方法的效率有关问题

2011-11-07 
关于list的两个访问方法的效率问题一个使用for(int i0ilist.size()i++)另一个使用 迭代器 Iterator it

关于list的两个访问方法的效率问题
一个使用for(int i=0;i<list.size();i++)
另一个使用 迭代器 Iterator iterator=list.iterator;
  where(iterator.hasNext()){
  classb=iterator.next;}
哪个效率更高一些,还是无所谓?

[解决办法]
通过下面的检测,2者没有明显的效率区别.
但是数量级大的时候,用for也只是快了那么一点点.
但这一点点基本上忽略不计拉.
import java.util.ArrayList;
import java.util.Iterator;

public class TestList {

public static void main(String[] args) {
ArrayList list = new ArrayList();
for (int i = 1; i <= 10000; i++) {
list.add(i);
}
long time1 = System.currentTimeMillis();
Iterator iterator = list.iterator();
// 方法一
/*
* while (iterator.hasNext()) {

* System.out.println(iterator.next()); }
*/
// 方法二
for (int j = 0, len = list.size(); j < len; j++) {
System.out.println(list.get(j));
}
long time2 = System.currentTimeMillis();
System.out.println("时间差是-------->" + (time2 - time1));
}
}
[解决办法]

引用楼主 hallyhfk 的帖子:
一个使用for(int i=0;i <list.size();i++)
另一个使用 迭代器 Iterator iterator=list.iterator;
where(iterator.hasNext()){
classb=iterator.next;}
哪个效率更高一些,还是无所谓?

热点排行