for循环和迭代器哪个更高效,python迭代器的好处

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: