java 中迭代器的使用
java中数据容器很多,其容器在其操作时存在很多的共性,此时java可以使用迭代器为各种容器提供公共的接口。
使用迭代器iterator的作用可以使对容器的遍历操作完全与其底层的隔离,充分达到解耦的效果;
public interface Iterable
Iterator<T> iterator()
Returns an iterator over a set of elements of type T
当然Conllection接口扩展了iteraable,其实现的类都提供一个返回迭代器对象的方法;
迭代器接口要求实现其的类必须提供三种方法:
hasNext() :遍历过程中,判定是否还有下一个元素。(从Collection对象的第一个元素开始)
next() : 遍历该元素。(即取出下一个元素)
remove(): 移除刚刚遍历过的元素。
从定义可以发现,该三个方法经常是被搭配使用的。
Examle:
Iteraotr it= arrayList.Iterator();
while(it.hasNext())
{
print(it.next());
it.remove();
}
基本思路为:在遍历下一个元素前,先判断其是否存在。对于想删除的元素,必须先遍历其,故 remove()方法总是接在 next()方法之后。