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

有帮助吗?

解决方案

除了 Jeremy 所说的之外,它的主要好处是它有自己的语法糖:这 增强的for循环. 。比如说,如果你有一个 Iterable<String>, , 你可以做:

for (String str : myIterable) {
    ...
}

又好又简单,不是吗?创建的所有肮脏工作 Iterator<String>, ,检查是否 hasNext(), ,并调用 str = getNext() 由编译器在幕后处理。

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

Iterable Java文档 给出了实现类的完整列表 Iterable.

其他提示

如果你有一个复杂的数据集,就像一棵树或螺旋队列(是的,我刚刚作出了),但你的不在乎的它是如何在内部结构,你只是想得到一个所有要素之一,你得到它返回一个迭代器。

有问题的复杂的对象,可以是一个树或队列或WombleBasket实现可迭代,并且可以返回一个迭代器对象可以查询使用迭代方法。

这样的话,你可以问它,如果它hasNext(),如果确实如此,你得到的next()项目,而不用担心从哪里树或其它地方得到它。

它返回一个java.util.Iterator。它主要用于以能够在增强的for循环

使用实施类型
List<Item> list = ...
for (Item i:list) {
 // use i
}

引擎盖下,编译器调用list.iterator()和迭代它给您i内部的for循环。

接口是在其心脏的一个类应该实现的方法的列表。该迭代器的界面非常简单 - 只有一种实现方法:Iterator()。当一个类实现的Iterable接口,它告诉其他类就可以得到一个Iterator对象,以便迭代(即,移动)的数据中的对象。

迭代基本上允许迭代过任何集合。

这也是什么是需要使用Java对,每个控制语句。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top