论坛首页 入门技术论坛

集合对象的迭代效率

浏览 2042 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-01-09   最后修改:2009-01-09
    集合的迭代,在多数情况下,咱们想都不想,就会用下面这种
public void iterList(List<Integer> list){
		Iterator<Integer> iter = list.iterator();
		int total = 0;
		while(iter.hasNext())			
			total+=iter.next();
	}

而很少会这样做:
public void getList(List<Integer> list){
		int size = list.size();
		int total = 0;
		for (int i = 0; i < size; i++)
		{
			total+=list.get(i);
		}
	}

但是经测试表明,后一种比前一种快一倍。
打印结果:
用迭代变量的时间78
用get的时间32


原因:就是因为第一种方法在每次循环的时候,多调用了一次iter.hasNext()
   发表时间:2009-01-09  
用iterater好处就是随时可以增删数据,有程序专门维护idex
0 请登录后投票
   发表时间:2009-01-09  
唉,java项目谁的瓶颈在内存寻址上面啊。
0 请登录后投票
   发表时间:2009-01-14  
public void iterList(List<Integer> list){  
        Iterator<Integer> iter = list.iterator();  
        for(Iterator<Integer> iter = list.iterator();iter.hasNext();)
{
    ......
}

用这个呀?测过吗?
0 请登录后投票
   发表时间:2009-01-14  
wsbjwjt 写道
public void iterList(List<Integer> list){  
        Iterator<Integer> iter = list.iterator();  
        for(Iterator<Integer> iter = list.iterator();iter.hasNext();)
{
    ......
}

用这个呀?测过吗?

有测试结果啊
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics