在程序开发中,经常需要遍历集合中的所有元素。针对这种需求,JDK 专门提供了一个接口Iterator。Iterator 接口也是Java 集合中的一员,但它与Collection、Map 接口有所不同,Collection 接口与Map 接口主要用于存储元素,而Iterator 主要用于迭代访问(即遍历)Collection中的元素,因此Iterator 对象也被称为迭代器。
【例7.7】下面通过一个案例来学习如何使用Iterator 迭代集合中的元素,如文件7-7 所示。
文件7-7 Example07.java
执行结果
Iterator 迭代器对象在遍历集合时,内部采用指针的方式来跟踪集合中的元素。为了让初学者能更好地理解迭代器的工作原理,下面通过图7.3 来演示Iterator 对象迭代元素的过程。
(www.xing528.com)
图7.3 Iterator 对象迭代元素的过程
图7.3 中,在调用Iterator 的next()方法之前,迭代器的索引位于第一个元素之前,不指向任何元素,当第一次调用迭代器的next()方法后,迭代器的索引会向后移动一位,指向第一个元素并将该元素返回。当再次调用next()方法时,迭代器的索引会指向第二个元素并将该元素返回。依此类推,直到hasNext()方法返回false,表示到达了集合的末尾,终止对元素的遍历。
需要特别说明的是,当通过迭代器获取ArrayList 集合中的元素时,都会将这些元素当作Object 类型来看待,如果想得到特定类型的元素,则需要进行强制类型转换。
【例7.8】下面通过一个案例来演示这种异常。假设在一个集合中存储了学校所有学生的姓名,由于一个名为Annie 的学生中途转学,这时就需要在迭代集合时找出该元素并将其删除,如文件7-8 所示。
文件7-8 Example08.java
执行结果
[光庆,儒明,咏霞,罗粮,科宏,晓洪]
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。