Java-Iterator总结

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

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

在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);}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-28 19:23:46

Java-Iterator总结的相关文章

Java Iterator的remove方法

  public static void tt(){     List<String> list = new ArrayList<String>();     list.add( "0" );     list.add( "1" );     list.add( "2" );     list.add( "3" );     list.add( "4" );     list.add

Java Iterator和增强for循环 for each详解

Iterator是Java中的一个迭代器接口(Interface),用来提供标准的Java迭代器 Iterator支持泛型因为集合(Collection)类可以装入的类型是不确定的,从集合中取出的都是Object类型,加入泛型,就是告诉编译器确定要装入的对象类型,取值时就无需强制转换了. for each 是 Java 5 中新增的一个循环结构,本质上是一个Iterator,特点是可以用来遍历集合元素而不用考虑集合下标. 综合实例: package net.csdn.shf4715; impor

java Iterator Iterable Collection AbstractCollection Map关系

java.lang Interface Iterable<T>  实现该接口就可以使用for-each循环. java.util Interface Iterator<E>  用于遍历Collection,有hasNext(),next(),remove()方法. java.util Interface Collection<E>  整个Collection体系中的根接口,父类接口是Iterable.可以生成Iterator. java.util Interface M

java Iterator

1:java迭代器的功能却是很强大,在便利List尤其有用,而且在删除list里不连续的相同元素效率也很高, public class RemoveArrayListEnty { public static void main(String[] args) { List<String> list = new ArrayList<String>();   //"c"在Arraylist有连续存储           list.add("a");

Java Iterator的一般用法

Iterator(迭代器) 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构.迭代器通常被称为“轻量级”对象,因为创建它的代价小. Java中的Iterator功能比较简单,并且只能单向移动: (1) 使用方法iterator()要求容器返回一个Iterator.第一次调用Iterator的next()方法时,它返回序列的第一个元素.注意:iterator()方法是java.lang.Iterable接口,被Collection继承. (2)

java Iterator Fail-fast机制

Fail-fast:在迭代的过程中发现数据被改变时立即抛出异常,而不是等遍历完了再抛出异常:可以理解为快速感知. 在并发的时候,当线程A正遍历一个Collection或Map,这时另外一个线程B修改Collection或Map,线程A就会抛出一个错:ConcurrentModificationException. 即使是在单线程下运行, java.util.ConcurrentModificationException 异常也将被抛出. 表明:我正读取的内容被修改掉了,你是否需要重新遍历?或是做

学习总结 java Iterator迭代器练习

package com.hanqi.jh; import java.util.*; public class Text3 { public static void main(String[] args) { // TODO 自动生成的方法存根 //创建集合测试类 List<Integer> list=new ArrayList<Integer>(); //添加元素的范围 for(int i=0;i<10;i++) { list.add(i);//增加10个元素 } //输入1

java Iterator 的用法

java.util package has public interface Iterator and contains three methods: boolean hasNext(): It returns true if Iterator has more element to iterate. Object next(): It returns the next element in the collection until the hasNext()method return true

java iterator(迭代器)

任何容器类,都必须有某种方式可以插入元素并将它们再次取出,毕竟持有事物是容器最基本的工作,对于List,add()插入fang,get()取出,如果从更高层的角度思考,会发现这里有个确定:要用容器,必须对容器的确切类型编程,这样如果原本是List编码的,但是后来要应用于Set,那么此时该怎么办,是重写通用代码还是如何 迭代器(也是一种设计模式)的概念可用于达成这个目的,迭代器是一个对象,它的工作是遍历并选择序列中 对象,而客服端程序员不必关心或知道该序列的底层结构,此外迭代器通常被称为轻量级对象

[LeetCode] 284. Peeking Iterator Java

题目: Given an Iterator class interface with methods: next() and hasNext(), design and implement a PeekingIterator that support the peek() operation -- it essentially peek() at the element that will be returned by the next call to next(). Here is an ex