Iterator迭代
今天在牛客网练题的时候,出现了Iterator的题,实在想不起来这是什么,于是去查阅了相关资料,顺便自己去IDEA试了一下。总结了一些相关知识如下:
什么是Iterator?
我们来看看菜鸟教程里的解释:
Iterator是Java中最简单的一种迭代器,用于遍历访问集合。
既然Iterator叫做迭代器,那么就必须了解一下迭代的含义了。
迭代:迭代是重复反馈过程的活动,其目的通常是为了接近并到达所需的目标或结果。 每一次对过程的重复被称为一次"迭代",而每一次迭代得到的结果会被用来作为下一次迭代的初始值。
Iterator的四个操作
hasNext()是用来判断集合是否还有下一个元素;
next()则是用来获取集合下一个元素的;
remove()是用来删除集合的当前元素;
forEachRemaining不常用,这里不做讲解。
怎么使用iterator?
- Iterator 类位于 java.util 包中,使用前需要引入它,语法格式如下:
import java.util.Iterator; // 引入 Iterator 类
- 使用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());
}
}
}
输出结果如下:
我创建了一个ArrayList集合来存储数据,向里面加入了1,13,6,99这四个元素。然后通过Iterator<Integer> it = list.iterator();
语法格式调用了迭代器。
it相当于占了一个空的位置作为头,当it有下一个元素时,会将集合的第一个元素删去,也就是删除it指向的下一个元素。删除后下一个元素就会成为集合的第一个元素。比如,第一次执行while语句时,it的值为java.util.ArrayList$Itr@1540e19d
,这时它的下一个元素为1;第二次执行时it的下一个元素就变成了13,因为1被删除了。
执行过程如下:
Pass:以上仅为个人学习分享,如有建议或疑问希望能够不吝赐教!谢谢!
加油!努力!千万不要放弃!