我对 Java 还是很陌生,今天我尝试了解迭代器的使用。
所以我有几个问题:
为什么我需要实现 Iterable,它只提供了一种为集合创建新迭代器的方法,但如果我想获取所有元素,我也可以使用普通或增强的 for 循环。我已经读过这个问题:Iterable 接口用于什么?还有更多,但他们只是说它允许您遍历所有元素,这又回到了我的问题。
如果我实现 Iterable,我是否也应该实现 Iterator?
因为这实际上提供了可能对覆盖有用的方法。
例如,如果我的班级有一个布尔值,我是否希望我的对象处于循环中,我可以写public boolean hasNext() { if(loop) return true; //other things }
如果我确实像 2. 中所说的那样,增强的 for 循环会使用这些覆盖的方法吗?
例如上面提到的循环属性:如果它是真的,for循环会无限运行吗?
我希望有人可以帮助我更好地理解整个概念。