黑马程序员技术交流社区

标题: 超级接口Iterator [打印本页]

作者: 卢祥洲    时间: 2013-6-5 09:59
标题: 超级接口Iterator
本帖最后由 卢祥洲 于 2013-6-5 17:17 编辑

学到集合时,查Collection接口api,发现api中java.util 接口 Collection<E>下面有个超级接口:所有超级接口:Iterable<E>(汗!)。上网搜索看了是父接口的意思。不过现在Collection是父接口,Iterator也是父接口,疑问:Collection和Iterator是啥关系,谁是父接口?
作者: 桉树    时间: 2013-6-5 10:05
Iterator 呀。 API 上不是写了么 public interface Collection<E>extends Iterable<E>使他的子类都可以用Iterator迭代器遍历。
Iterator<E> 是迭代器的超级接口,而Collection<E>层次结构中的根接口。
{:soso_e176:}
作者: Super_Class    时间: 2013-6-5 10:10
Collection 的集合
   List
   Set 都实现了Iterable接口,也就是这些集合都是可迭代的。一般使用集合.iterator()获得迭代器。

简单的说,迭代器(iterator)的作用就是得到集合中的元素


Map集合时与Collection集合一个级别的。

区别在于:
   Map集合时双列集合,Collection是单列集合

Map集合没有迭代器。一般要获得Map集合的元素有两种方式:

keySet方法  //将键存到Set集合中
entrySet方法 //将键值对的映射信息存储到Set 集合中

作者: 卢祥洲    时间: 2013-6-5 10:50
桉树 发表于 2013-6-5 10:05
Iterator 呀。 API 上不是写了么 public interface Collectionextends Iterable使他的子类都可以用Iterator ...

额,了解了一点,不过问题更多了:Iterable 和 Iterator是来自2个不同的包,java.lang.Iterable ;
java.util.Iterator ;这2个啥区别?
作者: luckwei    时间: 2013-6-5 12:33
Iterable告知这个集合可以直接进行遍历;Iterator则是执行具体的遍历操作。而且一个实现Iterable接口的集合可以进行多次的遍历,当每次执行遍历操作的时候把自己本身传给实现Iterator的对象,这样每次遍历的操作都不会影响这个集合的内部元素。
作者: 桉树    时间: 2013-6-5 22:39
卢祥洲 发表于 2013-6-5 10:50
额,了解了一点,不过问题更多了:Iterable 和 Iterator是来自2个不同的包,java.lang.Iterable ;
java. ...

这个我也不懂哦,{:3_46:}。不过楼上的朋友貌似说了{:3_53:}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2