方式一、iterator迭代器
用途:主要用于遍历Collection集合中的元素
继承关系图:
在继承Iterable接口的Collection接口中,iterator() 方法仍未被实现(底层源码如下):
所以每一个实现collecion接口的集合类都会实现 iterator() 方法,用于返回 Iterator接口的对象,即返回一个迭代器(底层源码如下):
迭代器执行原理:
根据游标判断集合中是否存在下一个元素
存在-->游标下移,返回该位置元素;不存在-->退出循环
遍历完成,则游标指向最后一个元素;若想再次遍历,应重置迭代器,重置游标位置
Iterator i = col.iterator();//重置迭代器
iterator 遍历代码
Collection col = new ArrayList();//实例化ArrayList类
Iterator i = col.iterator();//每一个实现Collection接口的类均实现iterator方法
while (i.hasNext()){//利用游标看下一个元素是否存在
System.out.println(i.next());//存在即输出
}
方式二:增强for循环(底层仍是迭代器)
可替代 iterator迭代器,是简化版的迭代器,只能用来遍历数组和集合
集合:
for (Object next: col){
System.out.println("col=" + next);
}
数组:
int[] num = {1,2,7,863,45};
for(int i: num){//每取一个放入i中
System.out.println("num=" + i);
}
方式三:普通for循环
for(int i = 0; i < list.size(); i++){
System.out.println(list.get(i));
}