Discutamos algunas diferencias más entre Iterator y ListIterator con la ayuda del cuadro de comparación que se muestra a continuación.
Gráfica comparativa
Bases para la comparación | Iterador | ListIterator |
---|---|---|
BASIC | El iterador puede atravesar los elementos en una colección solo en dirección hacia adelante. | ListIterator puede atravesar los elementos de una colección tanto hacia delante como hacia atrás. |
Añadir | Iterator no puede agregar elementos a una colección. | ListIteror puede agregar elementos a una colección. |
Modificar | El iterador no puede modificar los elementos de una colección. | ListIterator puede modificar los elementos de una colección usando set (). |
atravesar | El iterador puede atravesar Mapa, Lista y Conjunto. | ListIterator solo puede atravesar objetos de lista. |
Índice | Iterator no tiene un método para obtener un índice del elemento en una colección. | Usando ListIterator, puede obtener un índice del elemento en una colección. |
Definición de iterador
Iterator es una interfaz en un Framework Collection . Se utiliza para recorrer los elementos de la colección. Iterator le permite iterar cada elemento de la colección uno por uno, obtener elementos de la colección o eliminar elementos de la colección. Puede observar que no puede modificar ningún elemento de una colección utilizando Iterator.
El iterador tiene un método iterador () que devuelve el iterador al inicio de la colección. Una vez que obtenga un iterador para el inicio de una colección, luego, para recorrer los elementos de la colección, establezca un bucle que llame a hasNext () cada vez que el bucle se repita. HasNext () si devuelve verdadero significa que el siguiente elemento está allí en la colección, y si devuelve falso significa que todos los elementos están atravesados. Luego, dentro del bucle, puede obtener cada elemento en una Colección usando next () . El método next () devuelve el siguiente elemento de la colección.
Retirarse:
Usando Iterator puede atravesar una colección solo en la dirección de avance.
Con Iterator, no puede manipular o modificar los elementos de una colección.
Definición de ListIterator
ListIterator es una interfaz en un marco de Colección y extiende la interfaz Iterator . Usando ListIterator, puede recorrer los elementos de la colección en ambas direcciones hacia adelante y hacia atrás . También puede agregar, eliminar o modificar cualquier elemento de la colección. En resumen, podemos decir que elimina los inconvenientes del iterador.
Los métodos de ListIterator son los siguientes:
hasNext () : si devuelve true, se confirma que hay más elementos en una colección.
next () : Devuelve los siguientes elementos de la lista.
nextIndex () : devuelve el índice de los siguientes elementos de la lista.
hasPrevious () : devuelve true si hay elementos en la dirección inversa en una colección.
previous () : Devuelve el elemento anterior en una colección.
previousIndex () : devuelve el índice del elemento anterior en una colección.
remove () : elimina el elemento de una colección.
set () : modifica el elemento en una colección.
add () : agrega el nuevo elemento en una colección.
Diferencias clave entre el iterador y el listador
- La diferencia básica entre Iterator y ListIterator es que, al ser el cursor, Iterator puede atravesar elementos en una colección solo en dirección hacia adelante. Por otro lado, el ListIterator puede atravesar en ambas direcciones hacia adelante y hacia atrás.
- Usando iterador no puedes agregar ningún elemento a una colección. Pero, al usar ListIterator puedes agregar elementos a una colección.
- Usando Iterator, no puede eliminar un elemento de una colección donde, como Puede eliminar un elemento de una colección usando ListIterator.
- Usando Iterator puedes recorrer todas las colecciones como Mapa, Lista, Conjunto. Pero, mediante ListIteror, puede atravesar la lista de objetos implementados solamente.
- Puede recuperar un índice de un elemento utilizando Iterator. Pero como la Lista es secuencial y está basada en índices, puede recuperar un índice de un elemento utilizando ListIterator.
Conclusión:
Puede usar ListIterator cuando tiene que atravesar particularmente un objeto List en dirección tanto hacia adelante como hacia atrás. De lo contrario, puede utilizar Iterator ya que admite todos los objetos de colección de tipos.