recorrer patron ejemplo colecciones java list iterator set listiterator

patron - recorrer iterator java



Diferencia entre Iterador y Lististador? (5)

Iterator es superclase de ListIterator.

Aquí están las diferencias entre ellos:

  1. Con el iterator puede avanzar solo, pero con ListIterator puede mover la palabra clave también mientras lee los elementos.
  2. Con ListIterator puede obtener el índice en cualquier punto durante el desplazamiento, lo cual no es posible con los iterator .
  3. Con el iterator puede verificar solo para el próximo elemento disponible o no, pero en el listiterator puede verificar los elementos anteriores y siguientes.
  4. Con listiterator puede agregar un nuevo elemento en cualquier punto del tiempo, mientras se desplaza. No es posible con el iterator .
  5. Con listiterator puede modificar un elemento al atravesarlo, lo cual no es posible con el iterator .

Mirador de Iterator:

public interface Iterator<E> { boolean hasNext(); E next(); void remove(); //optional-->use only once with next(), dont use it when u use for:each }

Look and feel de ListIterator:

public interface ListIterator<E> extends Iterator<E> { boolean hasNext(); E next(); boolean hasPrevious(); E previous(); int nextIndex(); int previousIndex(); void remove(); //optional void set(E e); //optional void add(E e); //optional }

Iterator ite = Set.iterator(); Iterator ite = List.iterator(); ListIterator listite = List.listIterator();

Podemos usar Iterator para recorrer un Set o una List o un Map . Pero ListIterator solo puede usarse para recorrer una List , no puede atravesar un Set . ¿Por qué?

Sé que la principal diferencia es que con el iterador podemos viajar en una sola dirección, pero con ListIterator podemos viajar en ambas direcciones. ¿Hay otras diferencias? Y todas las ventajas de ListIterator sobre ListIterator ?


Hay dos diferencias:

  1. Podemos usar Iterator para recorrer Set y List y también Map type of Objects. Mientras que un ListIterator se puede utilizar para atravesar para objetos de tipo lista, pero no para Set-type of Objects.

    Es decir, podemos obtener un objeto iterador usando Set y List, ver aquí:

    Al usar Iterator, podemos recuperar los elementos del Objeto de Colección solo en la dirección de avance.

    Métodos en iterador:

    1. hasNext()
    2. next()
    3. remove()

    Iterator iterator = Set.iterator(); Iterator iterator = List.iterator();

  2. Pero obtenemos el objeto ListIterator solo desde la interfaz de la Lista, mira aquí:

    donde como ListIterator le permite recorrer en cualquier dirección (tanto hacia adelante como hacia atrás). Entonces tiene dos métodos más como hasPrevious() y previous() distintos a los de Iterator. Además, podemos obtener índices de los elementos siguientes o anteriores (usando nextIndex() y previousIndex() respectivamente)

    Métodos en ListIterator:

    1. hasNext ()
    2. siguiente()
    3. anterior()
    4. hasPrevious ()
    5. retirar()
    6. nextIndex ()
    7. previousIndex ()

    ListIterator listiterator = List.listIterator();

    es decir, no podemos obtener el objeto ListIterator de la interfaz Set.

Referencia: - ¿Cuál es la diferencia entre Iterator y ListIterator?


Las diferencias se enumeran en el Javadoc para ListIterator

Usted puede

  • iterar hacia atrás
  • obtener el iterador en cualquier punto.
  • agrega un nuevo valor en cualquier punto.
  • establecer un nuevo valor en ese punto.

Las ventajas de ListIterator sobre ListIterator es que podemos agregar elementos en cualquier momento mientras recorremos una lista usando ListIterator.


Iterador y diferencia de ListIterator

  1. Podemos usar Iterator para recorrer Set y List y también Map type of Objects. Pero List Iterator se puede usar para recorrer objetos tipo List, pero no para Set type of Objects.

Es decir, podemos obtener un objeto Iterrator usando Set y List, ver aquí:

Iterator ite = Set.iterator(); Iterator ite = List.iterator();

Pero obtenemos el objeto List Iterator solo de la interfaz de la Lista, mira aquí:

ListIterator listite = List.listIterator();

es decir, no podemos obtener el objeto List Iterator de la interfaz Set.

  1. Al usar Iterator, podemos recuperar los elementos del Objeto de Colección solo en la dirección de avance.

    • donde como List Iterator, que le permite recorrer en cualquier dirección. Es decir los Iteradores de la lista atraviesan dos direcciones. Por lo tanto, tiene otro método tiene hasPrevious() y previous() distinto de iterador.