好处:
1.将遍历操作和序列使用的底层结构分离,不需要知道遍历的是ArrayList还是LinkedList。
2.不使用迭代器遍历时,ArrayList使用for循环,LinkedList使用while循环,while((e=e.next())!=null)......如果数据有改动——从ArrayList改为LinkedList,使用普通遍历需要改动大量代码。由于所有的内部状态(如当前元素位置,是否有下一个元素)都由Iterator来维护,只要向它发送下一个、取数据的命令,就可以遍历序列,所以使用迭代器不需要改变遍历代码。
常用方法:
-
使用方法iterator()要求容器返回一个Iterator。Iterator将准备好返回序列的第一个元素;
-
使用next()获取序列中下一个元素;
-
使用hasNext()检查序列中是否有元素;
-
使用remove()将迭代器新返回的元素删除。