Iterator迭代

今天在牛客网练题的时候,出现了Iterator的题,实在想不起来这是什么,于是去查阅了相关资料,顺便自己去IDEA试了一下。总结了一些相关知识如下:

什么是Iterator?

我们来看看菜鸟教程里的解释:

image

菜鸟教程-Iterator

Iterator是Java中最简单的一种迭代器,用于遍历访问集合。

既然Iterator叫做迭代器,那么就必须了解一下迭代的含义了。

迭代:迭代是重复反馈过程的活动,其目的通常是为了接近并到达所需的目标或结果。 每一次对过程的重复被称为一次"迭代",而每一次迭代得到的结果会被用来作为下一次迭代的初始值。

Iterator的四个操作

image
hasNext()是用来判断集合是否还有下一个元素;

next()则是用来获取集合下一个元素的;

remove()是用来删除集合的当前元素;

forEachRemaining不常用,这里不做讲解。

怎么使用iterator?

  1. Iterator 类位于 java.util 包中,使用前需要引入它,语法格式如下:
import java.util.Iterator; // 引入 Iterator 类
  1. 使用Iterator迭代的语法格式:
//获取迭代器语法
Iterator[<Type>] 变量名 = 集合名.iterator[<Type>]();

注意:集合名后面调用的iterator方法里的i是小写。

代码示例

package com.gy.practice;
import java.util.ArrayList;
import java.util.Iterator;

//iterator
public class Demo01 {
    public static void main(String[] args) {
        //创建集合
        //ArrayList<引用数据类型> 变量名 = new ArrayList<引用数据类型>();
       ArrayList<Integer> list = new ArrayList<Integer>();
       list.add(1);
       list.add(13);
       list.add(6);
       list.add(99);
       //迭代器Iterator
       //Iterator[引用数据类型] 变量名 = 集合/列表名.iterator();
       Iterator<Integer> it = list.iterator();

       //迭代器遍历元素
        while(it.hasNext()){
            list.remove(it);
            System.out.println(it);
            System.out.println(it.next());
        }

    }
}

输出结果如下:

image

​ 我创建了一个ArrayList集合来存储数据,向里面加入了1,13,6,99这四个元素。然后通过Iterator<Integer> it = list.iterator();语法格式调用了迭代器。

​ it相当于占了一个空的位置作为头,当it有下一个元素时,会将集合的第一个元素删去,也就是删除it指向的下一个元素。删除后下一个元素就会成为集合的第一个元素。比如,第一次执行while语句时,it的值为java.util.ArrayList$Itr@1540e19d,这时它的下一个元素为1;第二次执行时it的下一个元素就变成了13,因为1被删除了。

执行过程如下:

image

Pass:以上仅为个人学习分享,如有建议或疑问希望能够不吝赐教!谢谢!

posted @ 2021-08-27 15:32  Cara_Smith  阅读(51)  评论(0编辑  收藏  举报