/**
* 迭代器iterator的使用,来自java.util.iterator,作用是为了各式各样的集合,开发了一个统一的取出集合元素的接口,其主要有两种常用使用方法
* 1 boolean hasNext():如果集合中还有下一个元素,就返回true,否则返回false
* 2 E next():取出集合中的下一个元素
* 使用迭代器需要使用Collection接口的iterator()方法,其返回的就是一个迭代器iterator实现类对象,有了实现类对象才能使用里面的方法
* 使用迭代器的基本步骤:
* 1 先使用Collection集合的iterator()方法获取iterator实现类对象,并使用一个iterator接口来接收,接口指向对象,多态的应用
* 2 使用迭代器的hasNext()方法判断集合中还有没有下一个元素
* 3 使用迭代器的next()方法取出集合中下一个元素
*/
//初始化集合,存入集合元素
Collection<String> col = new ArrayList<String>();
col.add("Messi");
col.add("Ronald");
col.add("Herry");
col.add("Beckham");
col.add("clyang");
System.out.println(col);
//获取迭代器,迭代器泛型就是集合的泛型
Iterator<String> it = col.iterator();//返回集合元素顺序随机
//使用步骤,得到一个集合对象
boolean r = it.hasNext();
String str = it.next();
System.out.println(r); //true
System.out.println(str); //Messi
//可以使用循环遍历获取迭代器中每一个对象
while (it.hasNext()) {
System.out.println(it.next());
}
//遍历完后,再次从迭代器取元素
boolean r1 = it.hasNext();
System.out.println(r1); //false
/*
String str1 = it.next(); //抛出异常,NoSuchElementException
System.out.println(str1);
*/
//使用for循环遍历迭代器
for (Iterator<String> it1 = col.iterator(); it1.hasNext(); ) {
System.out.println(it1.next());
}