为什么Iterator接口不扩展Iterable

iterator()方法可以简单地返回this.

这是故意的,还是仅仅是对Java设计者的疏忽?

能够将for-each循环与如下迭代器一起使用会很方便:

for(Object o : someContainer.listSomeObjects()) {
    ....
}

其中listSomeObjects()返回一个迭代器.

推荐答案

因为迭代器通常指向集合中的单个实例.Iterable意味着可以从对象获取迭代器来遍历其元素-而不需要迭代单个实例,这就是迭代器所代表的.

Java相关问答推荐

在现代操作系统/硬件上按块访问数据值得吗?

如何在返回bigint []值的子查询中使用any?

流迭代列表<;对象>;上的NoSuchElementException

使用Mockito进行的Junit测试失败

Spring Data JPA慢慢地创建了太多非活动会话

匹配一组字符或另一组字符

使用存储在字符串变量中的路径目录打开.pdf文件

在向WebSphere中的文档添加元素时iText挂起

使用While循环打印素数,无法正常工作

Regex以查找不包含捕获组的行

Java.lang.invke.LambdaConversionException:实例方法InvokeVirtual的参数数量不正确

STREAMS减少部分结果的问题

对从Spring Boot 3.1.5升级到3.2.0的方法的查询验证失败

如何处理两个几乎相同的XSD文件?

在应用getCellFormula()时,Excel引用中的文件名始终为";[1]";使用Apache POI()

使用迭代器遍历HashMap不会因IF条件而停止

本机方法(JNI)总是编译的吗?

在ECLIPSE上的M1 Pro上运行JavaFX的问题

使用@ExceptionHandler的GlobalExceptionHandler还是来自服务器的REST应答的ResponseEntity?

由于版本不匹配,从Java 8迁移到Java 17和Spring 6 JUnit4失败