Collection接口为啥不直接继承Iterator接口
1. Iterator是做迭代的,而Iterable是提供迭代器的。
2. 如果不设置Iterator,把next,hasNext等塞到集合里,那么这个集合就有了状态,因为必须在内部记录当前游标(cursor)所在位置。
3. 这样是不合理的。如果这么做就没办法在嵌套循环时对同一个集合做循环。
4. 更别提多线程了
5. 主要原因就是上面这个,这个是“能不能”的问题,而不是“好不好”的问题,其他“因为这么做不好”的原因就不说了。
■网友
Collection是“可迭代的”,不代表它本身是一个迭代器嘛,可迭代的是说,你可以对这个类(实现了Collection接口)的对象做迭代,但是迭代器是指你迭代过程中需要用到的一个表示“迭代进度”的东西(也是一个对象)
【Collection接口为啥不直接继承Iterator接口】 如果一个对象本身也是一个迭代器,那相当于是说,这个对象同一时间只能有一个人对其做迭代,多个迭代者之间会互相干扰,比如说,一个Vector如果实现Iterator接口,那么Vector本身就有了hasNext和next方法,那这个next指的是谁的next呢,当前迭代状态存哪?
■网友
接口只能继承接口,不能继承类!
推荐阅读
- 为啥看到书柜上的藏书会有心旷神怡的感觉
- 为啥知乎上普便有一种【我在北上广深打工,所以拥有更好的视野】这样的错觉
- 为啥工商银行的用户体验如此之差
- 汽车|看了中消协4S店服务测评调查结果,终于知道法系车为啥卖不好了
- 你为啥从窝窝商城离职?
- 为啥5G和2.4G默认的BSSID是相同的
- 为啥电器实体店的价格比淘宝贵那么多
- 现在在线学习视频有很多了,为啥大部分人还是喜欢下载下来观看
- 为啥到现在你还没有女朋友 ?
- 天赐的声音|33岁张雨绮为啥总离婚?看过这些照片就明白了,都是性感惹得祸
