天天看点

Java 迭代器Iterator一.迭代器作用:二.迭代器概念:三.迭代器的定义:四.常用方法:五.使用迭代器遍历集合示例:

一.迭代器作用:

   通用的取出集合中元素的方法(对集合进行遍历)

二.迭代器概念:

  • 迭代: 即collection集合元素的通用获取方式,在取出元素之前先要判断集合中是否有没有元素,如果有,就把这个元素取出来,接下来继续判断,如果还有,就继续取出来,直到把集合中所有元素全部取出

    这种取出方式专业术语称为迭代

  • 使用java.util.Iterator接口对集合进行遍历

三.迭代器的定义:

    提供一种方法访问一个容器(container)对象中各个元素,而又不需要暴露该对象的内部细节

迭代器模式,就是为了容器而生

  • Collection接口继承了java.lang.Interable接口,该接口有一个interator()方法,那么实现Collection接口的类都有interator()方法,用以返回一个实现了Interator接口的对象
  • Interator仅用于集合的遍历,本身并不提供继承对象的能力,如果需要创建Interator对象,则必须有一个被迭代的集合
  • 集合对象每次调用interator()方法都得到一个全新的迭代器对象,默认游标都在集合的第一个元素之前

四.常用方法:

  • boolean hasNext();

//判断集合中是否还有下一个元素,如果仍有元素可以迭代,则返回true;没有则返回false

  • E next();

//返回迭代的下一个元素

   Iterator迭代器,是一个接口,我们无法直接使用,需要使用Iterator接口的实现类对象,获取实现类的方式比较特殊 Collection中接口中有一个iterator()方法,这个方法返回的就是迭代器实现类的对象

  • default remove();

//移除操作,不同于集合直接调用remove()

五.使用迭代器遍历集合示例:

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
​
public class IteratorTest {
​
    public static void main(String[] args) {
​
        Collection c = new ArrayList();
        c.add(123);
        c.add(666);
        c.add("Tom");
        c.add(false);
​
        Iterator iterator = c.iterator();   //创建迭代器对象
        while (iterator.hasNext()){    //判断集合中是否还有下一个元素
            Object obj = iterator.next();    //如果有下一个元素,则将它传给obj
            if ("Tom".equals(obj)){    //判断集合中是否有"Tom"这个元素
                iterator.remove();    //如果有"Tom",则调用删除方法将它删除
            }
        }
        iterator = c.iterator();     //再遍历一次集合,并输出新的集合
        while (iterator.hasNext()){
            System.out.println(iterator.next());
        }
    }
}