一.迭代器作用:
通用的取出集合中元素的方法(对集合进行遍历)
二.迭代器概念:
-
迭代: 即collection集合元素的通用获取方式,在取出元素之前先要判断集合中是否有没有元素,如果有,就把这个元素取出来,接下来继续判断,如果还有,就继续取出来,直到把集合中所有元素全部取出
这种取出方式专业术语称为迭代
-
使用java.util.Iterator接口对集合进行遍历
三.迭代器的定义:
提供一种方法访问一个容器(container)对象中各个元素,而又不需要暴露该对象的内部细节
迭代器模式,就是为了容器而生
-
Collection接口继承了java.lang.Interable接口,该接口有一个interator()方法,那么实现Collection接口的类都有interator()方法,用以返回一个实现了Interator接口的对象
-
Interator仅用于集合的遍历,本身并不提供继承对象的能力,如果需要创建Interator对象,则必须有一个被迭代的集合
-
集合对象每次调用interator()方法都得到一个全新的迭代器对象,默认游标都在集合的第一个元素之前
四.常用方法:
-
boolean hasNext();
//判断集合中是否还有下一个元素,如果仍有元素可以迭代,则返回true;没有则返回false
-
E next();
//返回迭代的下一个元素
Iterator迭代器,是一个接口,我们无法直接使用,需要使用Iterator接口的实现类对象,获取实现类的方式比较特殊 Collection中接口中有一个iterator()方法,这个方法返回的就是迭代器实现类的对象
-
default remove();
//移除操作,不同于集合直接调用remove()
五.使用迭代器遍历集合示例:
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class IteratorTest {
public static void main(String[] args) {
Collection c = new ArrayList();
c.add(123);
c.add(666);
c.add("Tom");
c.add(false);
Iterator iterator = c.iterator(); //创建迭代器对象
while (iterator.hasNext()){ //判断集合中是否还有下一个元素
Object obj = iterator.next(); //如果有下一个元素,则将它传给obj
if ("Tom".equals(obj)){ //判断集合中是否有"Tom"这个元素
iterator.remove(); //如果有"Tom",则调用删除方法将它删除
}
}
iterator = c.iterator(); //再遍历一次集合,并输出新的集合
while (iterator.hasNext()){
System.out.println(iterator.next());
}
}
}