一、Iterator接口
1、概念
Collection集合元素的通用获取方式,在取出元素之前先要判断集合中有没有元素,
如果有,就把这个元素取出来,继续判断有没有,直到把集合中的所有元素全部取出,这种方法叫迭代。
2、常用方法
public boolean hasNext(); //判断集合中还有没有下一个元素,有就返回true;
public E next();//返回迭代的下一个元素
3、迭代器的使用步骤
1、使用集合中的方法iterator()获取迭代器对象实现类对象,使用Iterator接口接收(多态);
注意:Iterator<E>接口也是有泛型的,迭代器的泛型跟着集合走,集合是什么泛型,迭代器就是什么泛型
2、是同Iterator接口中的方法hasNext()判断还有没有下一个元素;
3、使用Iterator接口中的方法next()取出集合中的下一个元素;
代码实现:
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class Test {
public static void main(String[] args) {
//创建集合对象
Collection<String> c = new ArrayList<>();
//添加元素
c.add("张三");
c.add("李四");
c.add("王五");
c.add("赵六");
//1、使用集合中的方法iterator()获取迭代器对象实现类对象,使用Iterator接口接收(多态);
Iterator<String> it = c.iterator();
while (it.hasNext()){// 2、是同Iterator接口中的方法hasNext()判断还有没有下一个元素;
System.out.println(it.next());//3、使用Iterator接口中的方法next()取出集合中的下一个元素;
}
/*
输出结果:
张三
李四
王五
赵六
*/
}
}
二、增强for循环
概念
一个高级for循环,专门用来遍历数组和集合;
底层是迭代器;
在遍历的过程中,不能对集合中的元素进行增删操作;
格式
for(集合/数组的类型 变量名 : 集合名/数组名){
sout(变量名);
}