Iterator ite = Set.iterator();
Iterator ite = List.iterator();
ListIterator listite = List.listIterator();
Podemos usar Iterator
para atravesar a Set
o a List
o a Map
. Pero ListIterator
solo puede usarse para atravesar a List
, no puede atravesar a Set
. ¿Por qué?
Sé que la principal diferencia es que con el iterador podemos viajar en una sola dirección pero con ListIterator
ambas podemos viajar. ¿Hay otras diferencias? ¿Y alguna ventaja de ListIterator
más Iterator
?
Respuestas:
Las diferencias se enumeran en el Javadoc para ListIterator
Usted puede
fuente
Set
es simple: no hay un "punto actual": los elementos no tienen índice y no hay una forma útil de agregar un elemento "antes" o "después" de otro.Hay dos diferencias:
Podemos usar Iterator para atravesar Set y List y también Map type of Objects. Mientras que un ListIterator se puede usar para recorrer objetos de tipo Lista, pero no para Objetos de tipo Conjunto.
Es decir, podemos obtener un objeto Iterator usando Set y List, vea aquí:
Al usar Iterator podemos recuperar los elementos del objeto de colección solo en dirección hacia adelante.
Métodos en Iterator:
hasNext()
next()
remove()
Pero obtenemos el objeto ListIterator solo de la interfaz List, vea aquí:
donde como ListIterator le permite atravesar en cualquier dirección (hacia adelante y hacia atrás). Entonces tiene dos métodos más como
hasPrevious()
yprevious()
diferentes a los de Iterator. Además, podemos obtener índices de los elementos siguientes o anteriores (usandonextIndex()
ypreviousIndex()
respectivamente)Métodos en ListIterator:
es decir, no podemos obtener el objeto ListIterator de la interfaz Set.
Referencia: - ¿Cuál es la diferencia entre Iterator y ListIterator?
fuente
Aquí están las diferencias entre ellos:
iterator
usted puede avanzar solo, pero conListIterator
usted puede retroceder también mientras lee los elementos.ListIterator
usted puede obtener el índice en cualquier momento durante el desplazamiento, lo que no es posible coniterator
s.iterator
puede verificar solo el siguiente elemento disponible o no, pero enlistiterator
puede verificar los elementos anteriores y siguientes.listiterator
usted puede agregar un nuevo elemento en cualquier momento, mientras recorre. No es posible coniterator
.listiterator
usted puede modificar un elemento mientras recorre, lo que no es posible coniterator
.Aspecto y sensación de iterador:
Aspecto de ListIterator:
fuente