什么是迭代器 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的主要内容,如果未能解决你的问题,请参考以下文章

什么是迭代器?

31 迭代器 Iterator 是什么?

什么是迭代器 iterator

Iterator迭代器到底是什么?

java 什么是迭代器iterator

Iterator迭代器