Java的for循环、增强for循环、lambda表达式中的forEach 三种方式优缺点比较?

 我来答
jeffgxy
2021-11-17 · TA获得超过293个赞
知道小有建树答主
回答量:431
采纳率:71%
帮助的人:177万
展开全部
个人理解不喜勿喷。
简单的来说其实三种并没有什么太大的区别,一般情况下的性能也差不多。
for循环:
优点:可以直接获取下标,能更精确的定位。下标变量属于循环内变量,循环结束会自动回收。下标变量的步长可以自定,比较灵活。
缺点:需要根据下标才会获取循环内容。只能循环有序集合和数组,如Set和Map就无法遍历。

增强for:
优点:循环直接进行赋值,直接得到循环对象,不需要通过下标获取。可以遍历所有集合类型和数组。

缺点:循环有序集合时无法定位下标,需要在循环外层定义下标。无法遍历Map类型。

lambda:
优点:可以对所有集合类型和Map进行循环,特别是支持对Map进行循环,循环也是直接进行赋值,直接得到循环对象。

缺点:循环有序集合时无法定位下标,无法遍历数组,因为理论上来说他是属于迭代器的一种。同时因为循环体属于一个封闭范围的线程,在循环体内使用部分循环体外的变量需要加final关键字,很不方便。
另外说到了迭代器,可以参考lambda,不过写法就没lmbda那么方便了,不过迭代器有很多功能是循环比不上的,可以去看看。
帐号已注销

2021-11-17 · 贡献了超过3972个回答
知道答主
回答量:3972
采纳率:0%
帮助的人:145万
展开全部
foreach 是Java 中的一种语法糖,几乎每一种语言都有一些这样的语法糖来方便程序员进行开发,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wj158341251
2021-11-17 · 贡献了超过293个回答
知道答主
回答量:293
采纳率:1%
帮助的人:8.7万
展开全部
1. 不清楚你说的list总的值指的是什么?...lambda的foreach就会高效;反之这5261两个集合如果相互关联
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式