天天看点

Java集合(3)--Iterator迭代器

Iterator对象称为迭代器(设计模式的一种),主要用于遍历 Collection 集合中的元素。Collection接口继承了java.lang.Iterable接口,该接口有一个iterator()方法,那么所有实现了Collection接口的集合类都有一个iterator()方法,用以返回一个实现了Iterator接口的对象。

Iterator 仅用于遍历集合,Iterator 本身并不提供承装对象的能力。如果需要创建

Iterator 对象,则必须有一个被迭代的集合。

集合对象每次调用iterator()方法都得到一个全新的迭代器对象,默认游标都在集合

的第一个元素之前。

Java集合(3)--Iterator迭代器
Java集合(3)--Iterator迭代器
Java集合(3)--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(数组内元素类型 局部变量名 : 要进行遍历操作的数组){
	//具体操作
}