我是初学者,我无法理解Iterable
界面的真实效果。什么是Iterable接口用于?
27
A
回答
37
除了杰里米所说的,它的主要好处是它有自己的一点语法糖:enhanced for-loop。如果你有,比如说,一个Iterable<String>
,你可以这样做:
for (String str : myIterable) {
...
}
尼斯和容易,不是吗?创建Iterator<String>
的所有肮脏工作,检查它是否hasNext()
,以及调用str = getNext()
由编译器在幕后处理。
而且由于大多数集合实现了Iterable
或者有一个返回1的视图(例如Map
的keySet()
或values()
),这使得使用集合更容易。
Iterable
Javadoc给出了实现Iterable
的类的完整列表。
11
如果你有一个复杂的数据集,像一棵树或一个螺旋队列(是的,我只是做了这件事),但你不在乎它是如何在内部结构,你只是想要所有的元素通过一个,你得到它返回一个迭代器。
有问题的复杂对象,无论是树还是队列或WombleBasket实现Iterable,并且可以返回可以使用Iterator方法查询的迭代器对象。
这样,你可以问它是否它hasNext()
,如果是这样,你得到next()
项,而不用担心从哪里得到树或任何地方。
3
迭代器基本上允许迭代任何集合。
这也是为每个控制语句使用Java的要求。
5
它返回一个java.util.Iterator
。它主要用于为能够使用实施类型中增强的for循环
List<Item> list = ...
for (Item i:list) {
// use i
}
引擎盖下的编译器调用list.iterator()
和迭代时,给你里面的i
for循环。
3
接口的核心是一个类应该实现的方法列表。可迭代接口非常简单 - 只有一种方法可以实现:Iterator()
。当一个类实现了Iterable
接口时,它告诉其他类可以使用Iterator
对象迭代(即遍历)对象中的数据。
相关问题
- 1. 实现Iterable接口
- 2. 如何实现Iterable接口?
- 3. 扩展Iterable的Haxe接口
- 4. 什么是基于接口的框架?
- 5. 是什么接口
- 6. 什么是接口?
- 7. 什么是接口
- 8. Iterable和Iterator接口的使用
- 9. 什么是公共接口?
- 10. 什么是接口膨胀?
- 11. 什么是“网关接口”?
- 12. 什么是链接窗口?
- 13. MySQL,什么是SQL接口?
- 14. 什么是IServiceLocator接口?
- 15. 什么是端口8000用于播放
- 16. FlowType用于定义接口的语言是什么?
- 17. 这是什么打字稿接口语法是什么意思?
- 18. 什么是公共类[接口]在vb.net是什么意思?
- 19. 接口优于抽象类的优点是什么?
- 20. 什么是关于泛型及其接口的最佳资源?
- 21. 什么是用于
- 22. 什么是用于
- 23. 什么是+ =用于?
- 24. 什么是用于
- 25. java.nio.file.CopyOption接口的目标是什么?
- 26. 什么是QueuePause中的接口名称
- 27. Java:什么是compareTo接口语义?
- 28. 什么是“hasOwnProperty()”接口的等价物?
- 29. 什么是M代表MI2S接口
- 30. 接口+基类 - 这是什么模式?
ahhh - 太慢;-) – 2009-06-29 16:12:15