问题
我是Java新手,我真的很困惑迭代器和迭代。任何人都可以向我解释并举一些例子吗?
#1 热门回答(143 赞)
AnIterable
是可以迭代的一系列元素的简单表示。它没有任何迭代状态,例如"当前元素"。相反,它有一个生成aIterator
的方法。
AnIterator
是具有迭代状态的对象。它允许你使用hasNext()
检查它是否包含更多元素,并使用next()
移动到下一个元素(如果有)。
通常,anIterable
应该能够生成任意数量的validIterator
。
#2 热门回答(71 赞)
Iterable
的实现是提供自身的Iterator
的实现:
public interface Iterable<T>
{
Iterator<T> iterator();
}
迭代器是一种简单的方法,允许一些人在没有赋值权限的情况下循环访问数据集合(虽然能够删除)。
public interface Iterator<E>
{
boolean hasNext();
E next();
void remove();
}
SeeJavadoc。
#3 热门回答(15 赞)
**Iterable:**可以迭代的接口。也就是说,有一个"让我第一件事,现在是下一件事,等等,直到我们用完为止"的概念。
**迭代器:**一个管理迭代迭代的接口。也就是说,它会跟踪我们在当前迭代中的位置,并知道下一个元素是什么以及如何获取它。
要使对象可迭代,需要发出一个Iterator
对象。要强制执行此合同,将使用Iterable接口。它包含一个名为iterator()的方法,它返回Iterator。因此,任何实现Iterable的类都将返回一个Iterator。
public interface Collection<E> extends Iterable<E> {}
例如,任何收集。 Collection是一个表示一系列元素的容器的接口。像ArrayList,Vector这样的集合实现了Collection和Iterator。
Iterable的一个优点是,当你实现Iterable时,那些对象将获得对以下内容的支持:每个循环语法。