为了账号安全,请及时绑定邮箱和手机立即绑定

编程基础_迭代和遍历各是什么概念?二者区别和联系是什么?

编程基础_迭代和遍历各是什么概念?二者区别和联系是什么?

慕尼黑8549860 2019-04-16 20:26:45
笔者编程水平还处于初级阶段,平时使用列表的时候经常用到遍历比如://javafor(inti=0;i
查看完整描述

2 回答

?
慕沐林林

TA贡献2016条经验 获得超9个赞

抠字眼的时候请多用英文
遍历~Traverse访问一个集合(广义)的每个元素
迭代~Iterate反复调用同一个过程最终达成目的,这个过程如果是一个函数,那就是递归,如果是一个循环体,那就是狭义上的迭代。递归和迭代之间的关系、转换、优化等等又是另一个故事了。
总之遍历是目的,迭代是手段
                            
查看完整回答
反对 回复 2019-04-16
?
LEATH

TA贡献1936条经验 获得超6个赞

首先想知道你确定自己的迭代栗子时java的么?我怎么记得Java中的迭代式类似如下面的代码:
for(Stringstr:list){
System.out.println(str);//逐个输出数组元素的值
}
遍历:对于集合数据而言,访问所有的数据即为遍历。遍历的方法可以用递归或者迭代。
迭代:一般是用同一个参数来表示每个集合元素,用循环来实现。
个人感觉不必背下来两者的概念,而是要知道两者的区别。在《EffectiveJava》中,作者推荐“使用for-each循环优先于传统的for循环”(第二版第46条)。主要原因如下:
a).索引变量i出现三次,容易出错;
b).有些情况下,有一定性能优势,对边界值只计算一次;
c).代码更加简洁;
d).可以预防Bug。
但是有些情况是不能使用for-each循环的:
a).过滤--如果需要遍历集合,并删除元素,需要显式的迭代器,以便可以调用它的remove方法。
b).转换--如果需要遍历列表或者数组,并取代它部分或者全部的元素值,就需要列表迭代器或者数组索引,以便设定元素的值。
c).平行迭代--并行遍历多个集合,就需要显式控制迭代器或者索引变量,以便所有迭代器或者索引变量都可以得到同步前移。
更多的话楼主还是去看一下原书吧~
                            
查看完整回答
反对 回复 2019-04-16
  • 2 回答
  • 0 关注
  • 469 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信