我是Java的新手,我真的很困惑迭代器和可迭代器。谁能给我解释一下并举几个例子吗?
当前回答
Iterable的实现提供了自身的迭代器:
public interface Iterable<T>
{
Iterator<T> iterator();
}
迭代器是一种简单的方法,允许一些人在没有赋值权限的情况下循环遍历数据集合(尽管有删除的能力)。
public interface Iterator<E>
{
boolean hasNext();
E next();
void remove();
}
看到Javadoc。
其他回答
基本上来说,这两者都是密切相关的。
将Iterator视为一个接口,它帮助我们在一些未定义的方法(如hasNext(), next()和remove()的帮助下遍历集合。
另一方面,Iterable是另一个接口,如果由类实现,则强制该类为Iterable,并且是for - each构造的目标。 它只有一个名为iterator()的方法,该方法来自iterator接口本身。
当一个集合是可迭代的,那么它可以使用迭代器迭代。
为了了解,请访问以下内容:
ITERABLE: http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/lang/Iterable.java
迭代器http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/util/Iterator.java
Iterable的实现提供了自身的迭代器:
public interface Iterable<T>
{
Iterator<T> iterator();
}
迭代器是一种简单的方法,允许一些人在没有赋值权限的情况下循环遍历数据集合(尽管有删除的能力)。
public interface Iterator<E>
{
boolean hasNext();
E next();
void remove();
}
看到Javadoc。
问:Iterable和Iterator的区别? 答:
iterable:它与forEach循环相关 iterator: Is与Collection相关
forEach循环的目标元素应该是可迭代的。 我们可以使用Iterator从集合中逐个获取对象
java中存在可迭代对象。ḷang包 java中的迭代器。util包
只包含一个方法迭代器() 包含三个方法hasNext(), next(), remove()
1.5版引入 1.2版引入
Iterable是一系列可以迭代的元素的简单表示。它没有任何迭代状态,例如“当前元素”。相反,它只有一个产生Iterator的方法。
迭代器是具有迭代状态的对象。它允许您使用hasNext()检查是否有更多元素,并使用next()移动到下一个元素(如果有)。
通常,Iterable应该能够产生任意数量的有效迭代器。
如果一个集合是可迭代的,那么它可以使用迭代器迭代(因此可以在for每个循环中使用)。迭代器是遍历集合的实际对象。
推荐文章
- 在流中使用Java 8 foreach循环移动到下一项
- 访问限制:'Application'类型不是API(必需库rt.jar的限制)
- 用Java计算两个日期之间的天数
- 如何配置slf4j-simple
- 在Jar文件中运行类
- 带参数的可运行?
- 在Python中获取迭代器中的元素个数
- 我如何得到一个字符串的前n个字符而不检查大小或出界?
- 我可以在Java中设置enum起始值吗?
- Java中的回调函数
- c#和Java中的泛型有什么不同?和模板在c++ ?
- 在Java中,流相对于循环的优势是什么?
- Jersey在未找到InjectionManagerFactory时停止工作
- 在Java流是peek真的只是调试?
- Recyclerview不调用onCreateViewHolder