Iterator对象称为迭代器(设计模式的一种),主要用于遍历 Collection 集合中的元素。Collection接口继承了java.lang.Iterable接口,该接口有一个iterator()方法,那么所有实现了Collection接口的集合类都有一个iterator()方法,用以返回一个实现了Iterator接口的对象。
Iterator 仅用于遍历集合,Iterator 本身并不提供承装对象的能力。如果需要创建
Iterator 对象,则必须有一个被迭代的集合。
集合对象每次调用iterator()方法都得到一个全新的迭代器对象,默认游标都在集合
的第一个元素之前。
在调用it.next()方法之前必须要调用it.hasNext()进行检测。若不调用,且下一条记录无效,直接调用it.next()会抛出NoSuchElementException异常。
因此,通常集合遍历的方法如下:
Iterator iter = coll.iterator(); //每当collection.iterator()都生成返回一个新的迭代器对象,即游标在最开头
while(iter.hasNext()){Object obj = iter.next();if(obj.equals(要去除的元素)){iter.remove();}
}
Iterator可以删除集合的元素,但是是遍历过程中通过迭代器对象的remove方法,不是集合对象的remove方法。
Java 5.0 提供了 foreach 循环迭代访问 Collection和数组
遍历操作不需获取Collection或数组的长度,无需使用索引访问元素
遍历集合的底层调用Iterator完成操作
//又新建了一个集合,而不是原来的集合,里面的具体操作操作的是新的集合
for(集合内元素类型 局部变量名 : 要进行遍历操作的集合){//具体操作
}
//又新建了一个数组,而不是原来的集合,里面的具体操作操作的是新的数组
for(数组内元素类型 局部变量名 : 要进行遍历操作的数组){//具体操作
}