Iterator接口
Iterator接口是定义在java.util中的一个接口。每个实现Iterable接口的集合必须给出一个Iterator的方法。
通过Iterator方法,每个集合均可创建并返回一个实现Iterator接口的对象,即迭代器,并把当前位置的概念在该对象内部保存保存下来。
当第一次调用Iterator中的next方法时,将自动给出当前位置的下一个对象,第二次调用时便再给出第二个对象。使用remove方法时删除上一个next方法返回的元素,所以若使用remove方法,则必须先使用next方法。如果编译器遇到一个实现了Iterable接口的对象的foreach循环时,它将自动用迭代器对集合进行遍历。
当该集合产生变化时,此迭代器变为非法状态,但是使用迭代器内部的remove方法不会影响迭代器的使用。因此,迭代器即用即建,防止失效。
ListIterator接口
ListIterator是在List中实现的迭代器,它继承了Iterator接口,具有更丰富的功能。
Iterator只支持向后遍历和remove操作,而ListIterator支持双向遍历,且增加了add和set方法。
Collection合集
Collection是为了储存一个元素合集,它定义了所有合集的通用特性。所有合集都实现了Iterator接口。
Set用来储存一组不重复的元素。
List用来储存有序元素。
Stack用来储存采用先进后出方式处理的对象。
Queue用来储存采用先进先出方式处理的对象。
PriorityQueue用来储存按照优先级顺序处理的对象。
除PriorityQueue没有实现Cloneable外,所有合集都实现了java.long.Cloneable接口和java.io.Serializable接口。