为什么要迭代器?
我们知道,对于集合来说,有的有下标(如ArrayList LinkedList Vector
),有的没有下标。那么如果是有下标的集合遍历起来当然简单啦。只需要使用for
循环和类似get(intdex)
的方法就可以遍历,那么对于没有下标的集合呢?没有下标的集合怎么遍历?
迭代器,即Collection
集合元素通用的获取方式。取出元素之前判断集合中是否有元素,如果有,就取出来,知道直到取出集合中所有元素。
简而言之,迭代器就是遍历Collection集合的。
如何使用迭代器
知道了迭代器的实现原理后迭代器就很简单了。总结一下,迭代器的使用共有三步。这里的代码实现就用Collection类索引指向ArrarList
的多态为例子(Collection
的其他子类改变指向的对象即可实现多态复用,因为Collection是这几个类的根类。)
1.创建迭代器索引,使用多态,让索引指向对应的集合返回的迭代器(注意,迭代器的泛型必须和集合的泛型相同!)
Collection<Integer> myColl=new ArrayList<Integer>();
myColl.add(3);
myColl.add(1);
myColl.add(6);
myColl.add(3333);
Iterator<Integer> it=myCol