Maison  >  Article  >  Java  >  Java的Iterator接口总结

Java的Iterator接口总结

黄舟
黄舟original
2017-03-15 11:55:301417parcourir

纸上得来终觉浅,绝知此事要躬行  --陆游    问渠那得清如许,为有源头活水来  --朱熹


迭 代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建它的代价小。

在Collection集合中都会实现terator,因此可以通过iterator()函数获得一个iterator对象,然后就可以利用提供的函数进行相应的输出操作。

(1)iterator()方式是Java.lang.Iterator接口,被Collection实现。使用方法iterator()要求容器返回一个iterator。

(2)第一次调用Iterator的next()方法时,它返回序列的第一个元素,之后都会获得序列中的下一个元素。

(3)使用hasNext()检查序列中是否还有元素。

(4)使用remove()将迭代器新返回的元素删除


Java8中Iterator接口的源码:

public interface Iterator<E>
{
    boolean hasNext();//判断是否下一个
    E next();//获取下一个
    default void remove() //删除
    {
        throw new UnsupportedOperationException("remove");
    }
    default void forEachRemaining(Consumer<? super E> action) {
        Objects.requireNonNull(action);
        while (hasNext())
            action.accept(next());
    }
}


简单示例:

list l = new ArrayList();
l.add("aa");
l.add("bb");
l.add("cc");
//方法一
for (Iterator iter = l.iterator(); iter.hasNext();)
 {
     String str = (String)iter.next();
    System.out.println(str);
}
//方法二
Iterator iter2 = l.iterator();
 while(iter2.hasNext())
 {
    String str = (String) iter2.next();
    System.out.println(str);
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn