Iterator接口能够以迭代的方式对集合中的元素进行逐个访问,如果要获得一个集合的迭代器,可以采用表9.1中的Iterator<E> iterator()方法。获得集合迭代器之后,可以使用迭代器的常用方法对集合进行遍历,Iterator接口的常用方法如表9.6所示。
表9.6 Iterator接口的常用方法
采用Iterator迭代器对集合进行遍历时,其内部实现类似于指针的方式,使用hasNext()能够判断指针是否能够继续向后移动,使用next()方法能够将指针向后移动,并返回指针现在所指向的值,如图9.15所示。
图9.15 迭代器遍历集合示意图
如图9.15所示,在遍历集合时,应先使用hasNext()方法判断集合是否有下一个元素,如果有,则返回true,这时就可以调用next()将迭代器的索引向后移动一位(迭代器的索引默认是在第1个元素之前)并读取当前索引位置的集合元素,然后继续调用next()方法移动迭代器索引并读取集合元素,直到迭代器索引移动到最后一个元素。当迭代器索引移动到最后一个元素后,再调用hasNext()方法将返回false,表示此时迭代器索引已经指向最后一个元素,没有下一个元素了,应当结束对集合的遍历,否则继续调用next()方法将抛出异常。
【例9.11】创建一个集合并向集合中添加一些元素,然后使用迭代器遍历集合中的所有元素。
(www.daowen.com)
程序运行结果如图9.16所示。
图9.16 程序运行结果
对于Map而言,如果要采用迭代器来进行遍历,应该先采用Map提供的entrySet()方法来获得一个Entry键值对对象的Set集合,然后再通过iterator()方法获得该Set集合的迭代器。
【例9.12】创建一个HashMap并向其中添加一些元素,然后使用迭代器遍历Map中的所有元素。
程序运行结果如图9.17所示。
图9.17 程序运行结果
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。