为什么有了foreach还要有迭代器?

本文深入探讨了foreach和Iterator在遍历集合时的区别。foreach简洁但缺乏灵活性,依赖于已知的集合和元素类型;而Iterator则提供更强大的功能,如元素修改,且对集合类型不敏感,实现了真正的多态。此外,Iterator还支持在遍历过程中移除元素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0

foreach就是基于迭代器实现的

1

foreach需要知道自己的集合类型,甚至要知道自己集合内的元素类型,不能实现多态。这个使用的语法上都可以表示出来。foreach可以遍历任何集合或者数组,但是使用者需要知道遍历元素的类型。

Iterator是一个接口累心,它不关心集合的累心和集合内的元素类型,因为它是通过hasnext和next来进行下一个元素的判断和获取,这一切都是在集合类型定义的时候就完成的事情。迭代器统一了对容器的访问模式,这也是对接口解耦的最好表现。

2

iterator它可以随之修改元素内部的元素。可以在遍历的时刻用remove()删除元素 而foreach不可以。

3

foreac较为简便,foreach略带麻烦但是功能强大,如果都是遍历数组的话两者功能其实都一样,不停的执行下一个元素直至结束。只不过实现起来略有差异

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值