一、迭代器简介(Iterator)
迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建它的代价小.
迭代器只能单向移动.
二、重要方法
(1) 使用方法iterator()要求容器返回一个Iterator。注意iterator()方法是java.lang.Iterable接口,被Collection继承。
(2) 使用next()获得序列中的下一个元素。第一次调用Iterator的next()方法时,它返回序列的第一个元素。
(3) 使用hasNext()检查序列中是否还有元素。
(4) 使用remove()将迭代器上一次返回的元素删除。
(5) Iterator是Java迭代器最简单的实现,为List设计的ListIterator具有更多的功能,它可以从两个方向遍历List,也可以从 List 中插入和删除元素。
三、递代器使用
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class IteratorDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
List<String> lst4=new ArrayList<String>();
lst4.add("haha----1");
lst4.add("hehe----2");
lst4.add("enen----3");
//容器返回一个Iterator
Iterator<String> iterator=lst4.iterator();
//如果存在元素的话返回true
while(iterator.hasNext()==true)
{
System.out.println(iterator.next());
iterator.remove();
System.out.println(lst4.toString());
}
}
}
四、分析结果
haha----1****************首次iterator.next()输出第一个元素
****************进行了一次iterator.remove(),迭代器上一次返回的元素删除,即List中首元素
[hehe----2, enen----3]***打印出List集合中的所有元素,haha已经被删除
hehe----2****************第二次iterator.next()输出原List中第二个元素,因为递代器的位置不会改变
****************进行一次iterator.remove(),迭代器上一次返回的元素删除,即List中2号元素
[enen----3]**************打印出List集合中的所有元素,已经hehe被删除
enen----3****************第三次iterator.next()输出原List中第三个元素,因为递代器的位置不会改变
[] ****************集合为空
首次iterator.next()过后
iterator.remove()过后,删除红色方框。
参考资料:
https://www.cnblogs.com/xiaozhaoboke/p/11038893.html
https://blog.csdn.net/lxh123456789asd/article/details/80248418