如何为不实现Iterable的类使用for-each循环

Viv*_*mar 5 java collections foreach iterable interface

我正在阅读完整参考文献中的集合,然后我遇到了这个陈述

收集界面

Collection接口是构建Collections Framework的基础,因为它必须由定义集合的任何类实现.Collection是一个具有此声明的通用接口:interface Collection<E>.这里,E指定集合将容纳的对象的类型.Collection扩展了Iterable接口.这意味着所有集合都可以通过使用for-each样式for循环来循环.(回想一下,只有实现Iterable的类可以通过for循环).

在最后两行中,写入只有那些实现Iterable接口的类才能通过for循环循环.但是,我猜对象类没有实现可迭代接口,那么我们如何能够在字符串,整数等情况下使用for-each循环.

Cra*_*ing 5

确实如此.java.lang.Object没有实现Iterable<T>接口.

我们可以迭代对象,因为对象持有者(例如Collection)实现了Iterable<T>自动,而不一定是集合的对象部分.