Iterator

71 阅读1分钟

Iterator迭代器接口介绍

Collection接口继承了Iterator接口,在该接口中包含一个名为iterator的抽象方法,所有实现了Collection接口的容器类对该方法做了具体实现。iterator方法会返回一个iterator接口类型的迭代器对象,在该对象中包含三个方法用于实现对单例容器的迭代处理。、

Iterator接口定义了如下方法:

  • boolean hasNext(); //判断游标当前位置的下一个位置是否还有元素没有被遍历;
  • Object next(); //返回游标当前位置的下一个元素并将游标移动到下一个位置;
  • void remove(); //删除游标当前位置的元素,在执行完next后该操作只能执行一次;

Iterator迭代器的使用

  • 迭代List接口类型的容器
public class IteratorListTest {
   public static void main(String[] args) {
       //实例化容器
       List<String> list  = new ArrayList<>();
       list.add("a");
       list.add("b");
       list.add("c");
       //获取元素
       //获取迭代器对象
       Iterator<String> iterator = list.iterator();
       //方式一:在迭代器中,通过while循环获取元素
       while(iterator.hasNext()){
           String value = iterator.next();
           System.out.println(value);
       }
        System.out.println("-------------------------------");
        //方法二:在迭代器中,通过for循环获取元素
        for(Iterator<String> it = list.iterator();it.hasNext();){
           String value = it.next();
            System.out.println(value);
      }
   }
 }
  • 迭代Set接口类型容器
public class IteratorSetTest {
    public static void main(String[] args) {
        //实例化Set类型的容器
        Set<String> set  = new HashSet<>();
        set.add("a");
        set.add("b");
        set.add("c");
        //方式一:通过while循环
        //获取迭代器对象
        Iterator<String> iterator = set.iterator();
        while(iterator.hasNext()){
            String value = iterator.next();
            System.out.println(value);124
       }
        System.out.println("-------------------------");
        //方式二:通过for循环
        for(Iterator<String> it = set.iterator();it.hasNext();){
            String value = it.next();
            System.out.println(value);
       }
   }
 }
  • 迭代Map接口类型容器