迭代器(也是一种设计模式)是一个对象,它的工作是遍历并选择序列中的对象,而客户端程序员不需要知道或者关心该序列的底层结构。
java的Iterator只能单向移动,常用的方法有:
- 使用方法iterator()要求容器返回一个Iterator。Iterator将准备返回序列的第一个元素。
- 使用next()返回序列的下一个元素。
- hasNext()检查是否还有下一个元素。
- 使用remove()将迭代器最近返回的元素删除。
有了Iterator就不必为了容器中元素的数量操心了,那是由hasNext()和next()去关心的事情。
迭代器的子类型:
ListIterator:
是一个强大的Iterator子类型,只能用于各种List类的访问,可以进行双向移动,还可以产生相对于迭代器在列表中指向的当前位置的前一个和后一个元素的索引,并且可以使用set()方法替换它访问过的最后一个元素。你可以通过调用listIterator()方法产生一个指向List开始处的ListIterator,也可以通过调用listIterator(n)方法创建一开始就指向列表索引为n的元素处的ListIterator。