ejemplo: iterador sobre un array

Es fácil construir clases que se puedan usar como iteradores, bastando llevar cuenta interna de dónde se está en cada momento.

El ejemplo siguiente proporciona iteradores sobre arrays.

class IteraArray<T> implements Iterator<T>

import java.util.*;

 

public class IteraArray<T>

    implements Iterator<T> {

  private T[] objetos;

  private int posicion = 0;

 

  public IteraArray (T[] objetos) {

    this.objetos = (T[]) new Object[objetos.length];

    System.arraycopy(objetos, 0, this.objetos, 0, objetos.length);

    posicion = 0;

  }

 

  public boolean hasNext() {

    return posicion < objetos.length;

  }

 

  public T next() {

    if (posicion < objetos.length)

      return objetos[posicion++];

    throw new NoSuchElementException();

  }

 

  public void remove() {

    throw new UnsupportedOperationException();

  }

}        

 

Una vez tenemos el iterador se puede usar:

public static void main(String[] args) {

    IteraArray<String> it = new IteraArray<String>(args);

    while (it.hasNext())

      System.out.println(it.next());

}

Temas relacionados

21. Iterator<E> (interface) java.util.Iterator<E>