for循环和迭代器哪个更高效,python迭代器的好处
迭代时,程序运行的效率也是我们选择迭代法的重要原因。目前有三种迭代方法:for循环、迭代器和Foreach。前两者相信大家都不陌生。为了更直观地分析效率上的差异,我们还加入了Foreach来进行比较。下面我们先来了解一下这三种方法的概念,然后探究一下这三种方法在ArrayList中的效率。
1.概念理解
For循环:是一种支持迭代的通用结构,是最有效、最灵活的循环结构。
迭代器:它是通过集合的Iterator()方法获得的,所以我们说它依赖于集合而存在。
Foreach:我们还通过阅读源代码发现了一个Iterable接口。它包含一个生成迭代器对象的Iterator()方法,迭代器对象被foreach用来在序列中移动。它可以用于任何实现Iterable接口的对象。
2.效率的例子
ArrayList中的效率比较:list integers=lists . new ArrayList();
for(inti=0;i100000i ){
integers . add(I);
}
long start 1=system . current time millis();
for(int count=0;count10计数){
for(inti=0;我
intj=integers . get(I);
}
}
system . out . println(string . format( for loop 100 times:% SMS ,system . current time millis()-start 1));
long start 2=system . current time millis();
for(int count=0;count10计数){
for(Integeri:integers){
intj=I;
}
}
system . out . println(string . format( Foreach循环100次time:% SMS ,system . current time millis()-start 2));
long start 3=system . current time millis();
for(int count=0;count10计数){
iterator operator=integers . iterator();
while(iterator.hasNext()){
intj=iterator . next();
}
}
system . out . println(string . format(迭代器循环100次:% SMS ,system . current time millis()-start 3));
结果:循环100次:15毫秒。
每次循环100次:25毫秒
迭代循环100次:20毫秒
在ArrayList下,三种方法的效率差不多,for循环最好,因为ArrayList是用数组实现的,用索引定位数组的时间复杂度是O(1),定位一次就可以了,所以效率很高。
总结:for循环容易访问顺序存储的记录,而foreach和iterator容易访问链接存储。
以上是java迭代器和for循环的优缺点分析。可见,for循环作为我们最常用的知识点,使用效率是最高的。但是,就访问链接存储的有用性而言,我们建议您使用另外两种方法。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。