------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
迭代器是专门用来遍历集合而存在的一个接口,集合通过Iterator iterator()方法获取迭代器接口的子类对象。
需求:用ArrayList集合存储学生对象,并用迭代器遍历集合
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
/*
* Iterator iterator():迭代器,集合的专用遍历方式
* Object next():获取元素,并移动到下一个位置。
* NoSuchElementException:没有这样的元素,因为你已经找到最后了。
* boolean hasNext():如果仍有元素可以迭代,则返回 true。
利用迭代器输出学生信息
*/
public class IteratorDemo {
public static void main(String[] args) {
// 创建集合对象
Collection c = new ArrayList();
// 创建学生对象
Student s1 = new Student("林青霞", 27);
Student s2 = new Student("风清扬", 30);
Student s3 = new Student("令狐冲", 33);
Student s4 = new Student("不戒和尚", 25);
Student s5 = new Student("田伯光", 22);
// 把学生添加到集合
c.add(s1);
c.add(s2);
c.add(s3);
c.add(s4);
c.add(s5);
//Iterator iterator():迭代器,集合的专用遍历方式
//迭代器方法返回的是一个Iterator类型,查看API发现是一个接口。
//如果一个方法的返回值是一个接口,实际返回值应该是一个子类对象!
//这里得到子类对象的唯一目的是借用子类对象调用接口的功能。
//该接口有什么功能呢:E next() 返回迭代的下一个元素(是一个Object类)
//boolean hasNext()判断是否还存在下一个元素
//调用iterator方法,得到一个子类对象
Iterator it = c.iterator();
//利用Iterator的next()方法得到元素
//首先要判断是否还存在下一个元素
while(it.hasNext()){
//如果存在,则获取学生对象,得到的其实是Object类,要用Student接收需要向下转型
Student s = (Student) it.next();
System.out.println(s.getName()+"---"+s.getAge());
}
}
}