Iterator接口
实现代码:
1 | ArrayList list = new ArrayList(); |
首先使用调用ArrayList集合的iterator()方法获得迭代器对象,然后使用hasNext()方法判断集合中是否存在下一个元素,如果存在,则调用next()方法将元素取出,否则说明已到达了集合末尾,停止遍历元素。在通过next()方法取元素时,必须保证要获取的元素存在,否则,会抛出异常。
需要说明的是,当通过迭代器获取ArrayList集合中的元素时,都会将这些元素当作Object类型来看待,如果想得到特定类型的元素,则需要进行强制类型转换。
foreach循环
虽然Iterator可以用来遍历集合中的元素,但写法上比较繁琐,为了简化书写,从JDK5.0开始,提供了foreach循环。
实现代码:
1 | ArrayList list = new ArrayList(); |
注意:当使用foreach循环遍历集合和数组时,只能访问集合中的元素,不能对其中的元素进行修改。
ListIterator接口
实现代码:
1 | ArrayList list = new ArrayList(); |
Iterator迭代器通过hasNext()方法和next()方法,迭代的方向是从集合中的第一个元素向最后一个元素迭代,就是所谓的正向迭代。
ListIterator正好相反,是用hasPrevious()和previous()方法来进行反向迭代。
需要注意的是, ListIterator迭代器只能用于List集合。
Enumeration接口
实现代码:
1 | Vector v = new Vector(); |
这是Vector集合提供的一个方法,Vector集合前面讲过,就不细说了。