版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33322074/article/details/86505151
一、Iterator的产生:
1、迭代器的产生主要就是针对集合的,因为集合是一个容器,又分为两大派,四个具体实现。这些集合存取方式不同,存取也不同。为了屏蔽这种不同,迭代器就产生了。迭代器的产生就是用于集合的元素的取出。是一个接口。
二、面向接口编程思想
1、Iterator是一个接口,接口需要去实现。而Collection()集合中有一个接口方法iterator()返回值类型是Iterator。因此collection集合的实现类都可以重写这个方法返回Iterator接口实现类的对象。
ArrayList集合:Iterator iter=new array.iterator();运行结果就是Iteratror接口实现类的对象
2、Iterator的方法有hasNext(),next()两个方法
三、迭代器的两个重要方法:
1、hasNext()方法:用于判断集合中是否有元素。
2、next()方法:用于取出集合中的一个元素值。
由于next()方法一次只能取出一个元素,集合中有多个元素,因此需要迭代的方法将全部元素取出。一般用while循环。
3、迭代器的执行过程图解
4、迭代器除了while循环还有for循环方式:
for循环相对于while循环来说节约了内存。因为,你看for循环里的对象it2是在for循环里建造的,for循环结束后该对象结束。而while循环中的it对象是在main方法中建造的,在内存中一直存在。
5、集合中不指定集合类型输出时需要向下转型
集合不指定集合类型表示集合什么都存。因为自动向上转型成了Object类型
最后要输出长度时,采用了强制向下转型。