Mic*_*ers 45
除了Jeremy所说的,它的主要好处是它有一些语法糖:增强的for循环.如果你有,比如说Iterable<String>,你可以这样做:
for (String str : myIterable) {
    ...
}
好不容易,不是吗?创建Iterator<String>,检查它hasNext()和调用的所有脏工作都是str = getNext()由编译器在后台处理的.
并且由于大多数集合实现Iterable或具有返回一个的视图(例如Map's keySet()或' values()),这使得使用集合更容易.
该Iterable的Javadoc给出了实现类的完整列表Iterable.
Jer*_*yth 13
如果你有一个复杂的数据集,比如一个树或一个螺旋队列(是的,我只是把它做了),但你不在乎它内部的结构,你只想逐个获取所有元素,你得到它返回一个迭代器.
有问题的复杂对象,无论是树或队列,还是WombleBasket实现Iterable,并且可以返回可以使用Iterator方法查询的迭代器对象.
这样,你可以问它是否hasNext(),如果它,你得到的next()项目,而不用担心从树或哪里得到它.
它返回一个java.util.Iterator.它主要用于能够在增强的for循环中使用实现类型
List<Item> list = ...
for (Item i:list) {
 // use i
}
在引擎盖下,编译器调用list.iterator()并迭代它,为你提供ifor循环内部.
| 归档时间: | 
 | 
| 查看次数: | 44801 次 | 
| 最近记录: |