迭代器(Iterator)是可以遍历和查找集合容器中的对象,使用者无需了解集合的内部结构。通常集合容器都提供迭代器接口的实现,作为内部内部类来实现具体数据结构操作算法。
Java中定义Iterator接口,功能比较简单,并且只能单向向后移动,功能如下:
iterator()要求集合容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回集合容器的第一个元素。
next()获得集合容器中的下一个元素。
hasNext()检查集合容器中是否还有元素。
remove()将迭代器新返回的元素删除。
通常使用以下两个方式来遍历已实现了Iterator接口集合容器中元素,如下面的两个示例:
示例1:使用while循环 public class Test { public static void main(String[] args) { List<String> list=new ArrayList<String>(); list.add("北京"); list.add("南京"); list.add("上海"); list.add("深圳"); Iterator<String> it=list.iterator(); while(it.hasNext()){ String city=it.next(); System.out.println(city); } for(String city:list){ System.out.println(city); } } } | | |
示例2:使用for循环
public class Test { public static void main(String[] args) { List<String> list=new ArrayList<String>(); list.add("北京"); list.add("南京"); list.add("上海"); list.add("深圳"); Iterator<String> it=list.iterator(); while(it.hasNext()){ String city=it.next(); System.out.println(city); } for(String city:list){ System.out.println(city); } } } | |