Iterable 接口是做啥用的?

Posted

技术标签:

【中文标题】Iterable 接口是做啥用的?【英文标题】:What is the Iterable interface used for?Iterable 接口是做什么用的? 【发布时间】:2010-11-06 17:52:36 【问题描述】:

我是初学者,无法理解Iterable界面的真实效果。

【问题讨论】:

【参考方案1】:

除了 Jeremy 所说的,它的主要好处是它有自己的语法糖:enhanced for-loop。如果你有一个Iterable<String>,你可以这样做:

for (String str : myIterable) 
    ...

很好很容易,不是吗?所有创建Iterator<String>、检查它是否hasNext() 以及调用str = getNext() 的繁琐工作都由编译器在幕后处理。

而且由于大多数集合要么实现Iterable,要么有一个返回一个的视图(例如MapkeySet()values()),这使得使用集合变得更加容易。

Iterable Javadoc 给出了实现Iterable 的类的完整列表。

【讨论】:

【参考方案2】:

如果您有一个复杂的数据集,例如树或螺旋队列(是的,我只是编造的),但您不在乎它的内部结构如何,您只想一个一个地获取所有元素,你让它返回一个迭代器。

有问题的复杂对象,无论是树、队列还是 WombleBasket 都实现了 Iterable,并且可以返回一个迭代器对象,您可以使用 Iterator 方法查询该对象。

这样,您只需询问它是否为hasNext(),如果是,您将获得next() 项目,而无需担心从树上或任何地方获取它。

【讨论】:

【参考方案3】:

它返回一个java.util.Iterator。主要用于增强for循环中能够使用实现类型

List<Item> list = ...
for (Item i:list) 
 // use i

编译器在底层调用 list.iterator() 并对其进行迭代,从而在 for 循环中为您提供 i

【讨论】:

目前为止最好的答案。【参考方案4】:

接口的核心是一个类应该实现的方法列表。可迭代接口非常简单——只有一种方法可以实现:Iterator()。当一个类实现Iterable 接口时,它告诉其他类您可以获得一个Iterator 对象,用于迭代(即遍历)对象中的数据。

【讨论】:

【参考方案5】:

迭代器基本上允许对任何集合进行迭代。

这也是使用 Java 的 for-each 控制语句所需要的。

【讨论】:

【参考方案6】:

Iterable 被定义为泛型类型。

Iterable ,其中 T 类型参数表示迭代器返回的元素的类型。

实现此接口的对象允许它成为“foreach”语句的目标。 for-each 循环用于遍历数组、集合。

阅读更多 -: https://examples.javacodegeeks.com/iterable-java-example-java-lang-iterable-interface/

【讨论】:

以上是关于Iterable 接口是做啥用的?的主要内容,如果未能解决你的问题,请参考以下文章

org.hibernate.cfg.improvednamingstrategy是做啥用的

华表插件是做啥用的?是病毒吗?

IDE、SATA是啥意思?都是做啥用的?如何区分?

JdbcDaoSupport 是做啥用的?

sigaddset 是做啥用的?

maven.multiModuleProjectDirectory 是做啥用的?