什么是迭代器 iterator
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是迭代器 iterator相关的知识,希望对你有一定的参考价值。
迭代器(iterator)有时又称游标(cursor)是程序设计的软件设计模式,可在容器(container,例如链表或阵列)上遍访的接口,设计人员无需关心容器的内容。为了方便的处理集合中的元素,Java中出现了一个对象,该对象提供了一些方法专门处理集合中的元素.
例如删除和获取集合中的元素.该对象就叫做迭代器(Iterator).
对 Collection 进行迭代的类,称其为迭代器。还是面向对象的思想,专业对象做专业的事情,迭代器就是专门取出集合元素的对象。
但是该对象比较特殊,不能直接创建对象(通过new),该对象是以内部类的形式存在于每个集合类的内部。 参考技术A 迭代器(Iterator)
迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建它的代价小。
Java中的Iterator功能比较简单,并且只能单向移动:
(1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()方法是java.lang.Iterable接口,被Collection继承。
(2) 使用next()获得序列中的下一个元素。
(3) 使用hasNext()检查序列中是否还有元素。
(4) 使用remove()将迭代器新返回的元素删除。
Iterator是Java迭代器最简单的实现,为List设计的ListIterator具有更多的功能,它可以从两个方向遍历List,也可以从List中插入和删除元素。本回答被提问者采纳
Iterator迭代器
Iterator迭代器,用于遍历集合。
什么是迭代?
先判断集合中有没有元素,如果有就把元素取出来。这种取出方式,称为迭代。
创建迭代器
Iterator<包装类> it = 集合名.Iterator();
两个方法
it.hasNext();//判断有没有元素
it.next();//获取元素
完整格式
Iterator<包装类> it = 集合名.Iterator();
while(it.hasNext()){
包装类型 变量名 = list.it.next();
System.out.println(变量名)
}
迭代器的实现原理
当遍历集合时,首先通过调用集合的
iterator()
方法获得 迭代器对象,然后使用hashNext()
方法判断集合中是否存在下一个元素,如果存在,则调用next()
方法将元素取出,否则说明已到达了集合末尾,停止遍历元素。
示例一
package A
import java.util.ArrayList;
import java.util.Iterator;
public class Demo1{
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
Iterator<Integer> it = list.iterator();
while(it.hasNext()){//判断集合中有没有元素
Integer integer = it.next();//获取元素
System.out.println(integer);
}
}
}
示例二
package A;
import java.util.ArrayList;
import java.util.Iterator;
public class Demo2{
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("Tom");
list.add("Jerry");
Iterator<String> it = list.iterator();
while ((it.hasNext())){
String str = it.next();
System.out.println(str);
}
}
}
tips::如果集合中已经没有元素了,还继续使用迭代器的next方法,将会发生
java.util.NoSuchElementException
没有集合元素的错误。
以上是关于什么是迭代器 iterator的主要内容,如果未能解决你的问题,请参考以下文章