listiterator interface java with examples
Este tutorial explica la interfaz ListIterator en Java para las implementaciones de listas transversales. Aprenderá sobre el diagrama de clases y los métodos de la interfaz ListIterator:
Al igual que Iterator, la interfaz ListIterator proporciona la funcionalidad para recorrer las implementaciones de la lista en Java y acceder a los elementos de la lista.
=> Consulte aquí para ver los tutoriales de capacitación de la A a la Z de Java aquí.
Lo que vas a aprender:
Interfaz ListIterator en Java
Algunas de las principales características de la interfaz ListIterator se enumeran a continuación:
- ListIterator se introdujo en Java 1.2
- ListIterator es una subinterfaz de la interfaz Iterator, es decir, se extiende desde la interfaz Iterator.
- ListIterator solo funciona con implementaciones de listas.
- ListIterator admite todas las operaciones, a saber, Crear, Leer, Actualizar y Eliminar. (Llamadas colectivamente operaciones CRUD).
- ListIterator es un iterador bidireccional y admite iteradores de dirección hacia adelante y hacia atrás.
- En el caso de ListIterator, no hay ningún elemento actual. La posición del cursor apunta a la ubicación entre el elemento devuelto por el método anterior () y el elemento que devolvería el método next ().
Analicemos más sobre esta interfaz en este tutorial.
Diagrama de clases ListIterator
ListIterator es una interfaz que pertenece al marco de la API de colecciones. Esta interfaz se extiende desde la interfaz Iterator. Además de heredar los métodos de la interfaz Iterator, también admite los métodos para iteraciones bidireccionales y operaciones CRUD.
El diagrama de clases de la interfaz ListIterator se muestra a continuación.
La figura anterior muestra el diagrama de clases de la interfaz ListIterator. En la siguiente sección, discutiremos cada uno de los métodos que se muestran en la figura en detalle.
Métodos ListIterator
La interfaz ListIterator proporciona los siguientes métodos, como se muestra en la siguiente tabla.
Nombre del método | Prototipo | Descripción |
---|---|---|
retirar() | anular eliminar () | Elimina el último elemento devuelto por el método next () o previous (). |
hasNext () | booleano hasNext () | Comprueba si listIterator tiene más elementos para atravesar en dirección de avance. |
próximo() | E siguiente () | Devuelve el siguiente elemento de la lista. Luego mueve el cursor para apuntar al siguiente elemento. |
hasPrevious () | boolean hasPrevious () | Comprueba si ListIterator tiene más elementos en la dirección de retroceso / retroceso. |
anterior() | E anterior () | Devuelve el elemento anterior de la lista y mueve el cursor a una posición en la dirección hacia atrás. |
nextIndex () | int nextIndex () | Devuelve el índice del elemento que será devuelto por la llamada al método next (). |
previousIndex () | int previousIndex () | Devuelve el índice del elemento que será devuelto por la llamada al método anterior (). |
Siete) | conjunto vacío (E y) | Reemplaza el último elemento devuelto por el método next () o previous () con el nuevo valor. |
añadir (E) | anular añadir (E e) | Agrega un nuevo elemento a la lista. |
A continuación, describiremos cada uno de estos métodos en detalle.
# 1) hasNext ()
Prototipo: booleano hasNext ()
Parámetros: NULO
Valor devuelto:
- verdadero => la lista tiene el siguiente elemento
- Falso => la lista no tiene más elementos
Descripción: Este método comprueba si ListIterator tiene más elementos para atravesar en la dirección de avance. Si tiene más elementos, este método devuelve verdadero.
# 2) siguiente ()
Prototipo: E siguiente ()
Parámetros: NULO
Valor devuelto: E => siguiente elemento de la lista.
Descripción: El método next () devuelve el siguiente elemento de la lista y mueve el cursor al siguiente elemento.
Excepción lanzada: NoSuchElementException: si ListIterator no tiene un elemento siguiente.
# 3) hasPrevious ()
Prototipo: boolean hasPrevious ()
Parámetros: NULO
Valor devuelto: true => el ListIterator tiene un elemento anterior
Descripción: Comprueba si ListIterator tiene más elementos en la dirección de retroceso / retroceso.
# 4) anterior ()
Prototipo: E anterior ()
Parámetros: NULO
Valor devuelto: E => elemento anterior en la lista
Descripción: Este método devuelve el elemento anterior en la lista mientras se desplaza hacia atrás y luego mueve el cursor hacia atrás.
Excepción lanzada: NoSuchElementException: si ListIterator no tiene un elemento siguiente.
# 5) nextIndex ()
Prototipo: int nextIndex ()
Parámetros: NULO
Valor devuelto: int => índice del elemento que será devuelto por el método next () o tamaño de la lista si ListIterator está al final de la lista.
Descripción: Este método se puede llamar antes que el método next (). El método nextIndex () devuelve el índice del elemento que será devuelto por el método next (). Si ListIterator está al final de la lista, este método devuelve el tamaño de la lista.
# 6) previousIndex ()
Prototipo: int previousIndex ()
Parámetros: NULO
Valor devuelto: int => índice del elemento que será devuelto por el método anterior () o -1 si ListIterator está al principio de la lista.
Descripción: Este método se puede llamar antes que el método anterior (). El método previousIndex () devuelve el índice del elemento que será devuelto por el método previous (). Si ListIterator está al principio de la lista, el método devuelve -1.
# 7) eliminar ()
Prototipo: anular eliminar ()
Parámetros: NULO
Valor devuelto: vacío
Descripción: El método remove () elimina el último elemento devuelto por el método anterior () o siguiente (). La llamada al método remove () se puede realizar solo una vez por llamada al método next () o previous ().
Excepción lanzada:
- UnsupportedOperationException: ListIterator no admite la operación de eliminación.
- IllegalStateException: si la operación actual está en estado ilegal, es decir, no se ha llamado a la siguiente ni a la anterior o después de la llamada a la siguiente o anterior, entonces no se ha llamado a agregar o eliminar.
# 8) conjunto (E)
Prototipo: conjunto vacío (E y)
Parámetros: e => elemento nuevo con el que se sustituirá el elemento antiguo
Valor devuelto: vacío
Descripción: El método set () establece el elemento devuelto por el método anterior () o siguiente () con el nuevo valor pasado como argumento. Este método solo se puede llamar si no se llama al método add () o remove () después de la última llamada al método anterior () o siguiente ().
Excepción lanzada:
- UnsupportedOperationException: ListIterator no admite la operación de configuración.
- ClassCastException: si el elemento especificado no se puede agregar debido a su clase.
- IllegalArgumentException: si el elemento / argumento que se agrega es ilegal o no válido.
- IllegalStateException: si la operación actual está en estado ilegal, es decir, no se ha llamado a la siguiente ni a la anterior o después de la llamada a la siguiente o anterior, no se ha llamado a agregar o eliminar.
# 9) agrega (E)
Prototipo: anular añadir (E e)
Parámetros: e => nuevo elemento para agregar a la lista
Valor devuelto: vacío
Descripción: El método add () se usa para agregar un nuevo elemento a la lista. El elemento se agrega justo antes del elemento que habría devuelto el siguiente (), si lo hubiera, y después del elemento que habría devuelto el método anterior ().
Tenga en cuenta que, como resultado de agregar un elemento, no habrá ningún cambio para devolver el valor de next () pero el método anterior () devolverá solo el elemento agregado.
Excepción lanzada:
- UnsupportedOperationException: ListIterator no admite el método add.
- ClassCastException si un elemento especificado que no se puede agregar debido a su clase.
- IllegalArgumentException si el elemento / argumento que se agrega es ilegal o no válido.
El siguiente programa Java muestra una demostración de todos los métodos ListIterator anteriores.
|_+_|Producción:
Interfaz ListIterator en ejemplos de Java
Veamos otro ejemplo de uso de ListIterator. En este programa, tenemos una ArrayList de valores enteros. Luego, usando ListIterator recorremos la lista y mostramos los elementos de la lista.
Además, solo seleccionamos elementos pares en ArrayList y cambiamos sus valores a números impares usando los métodos ListIterator.
|_+_|Producción:
Preguntas frecuentes
P # 1) ¿Qué se entiende por iterador?
Responder: Iterator es una interfaz que forma parte del marco Collection en Java. Esta interfaz está presente en el paquete java.util. La interfaz del iterador se utiliza para recorrer la colección de objetos.
P # 2) ¿Qué es una interfaz de iterador en Java?
Responder: Se usa una interfaz de iterador en Java en lugar de Enumeraciones que se usaban anteriormente en Java Collection Framework. La interfaz del iterador está presente en Java desde la versión 1.2.
Con esta interfaz, puede iterar a través de las colecciones de Java y procesar los elementos de la colección.
P # 3) ¿Cuál es el uso del método listIterator () en Java?
Responder: El método listIterator () pertenece al paquete java.util. *. Este método devuelve un iterador de lista para el objeto de lista particular que lo invocó y puede usarse para recorrer las listas y acceder a los elementos. ListIterator solo funciona en implementaciones de listas.
P # 4) ¿El iterador es una clase o una interfaz?
Responder: El iterador no es una clase sino un interfaz en Java . Las otras clases pueden implementar la interfaz de iterador y usarla para iterar a través de elementos de lista o colección.
P # 5) ¿Cuántos tipos de iteradores hay en Java?
Responder: Los iteradores en Java son de tres tipos:
- Enumeraciones: Esta es una interfaz que se utiliza para leer los elementos de colecciones como Vector, hashtable, etc. Cada elemento está numerado según su posición en la colección.
- Iterador: Puede llamar a esta interfaz universal, ya que puede aplicarla a cualquier objeto de colección para atravesar la colección. Esta es una enumeración mejorada con funcionalidad de eliminación junto con la capacidad de leer un elemento.
- ListIterator: ListIterator es una interfaz que proporciona la iteración bidireccional, es decir, en direcciones hacia adelante y hacia atrás. ListIterator solo funciona con implementaciones de listas, incluidas LinkedList, ArrayList, etc.
Conclusión
La interfaz ListIterator en Java se deriva de la interfaz Iterator. Además de heredar directamente los métodos de la interfaz Iterator, la interfaz listIterator introduce varios métodos propios que pueden ayudar al programador a realizar la iteración bidireccional.
aplicación espía para iphone y android
En este tutorial, hemos discutido el diagrama de clases y los diversos métodos de la interfaz ListIterator. También hemos visto la implementación de estos métodos junto con las formas de recorrer varias listas.
=> Visite aquí para ver la serie de formación Java para todos.
Lectura recomendada
- Tutorial de interfaz Java y clase abstracta con ejemplos
- Tutorial de JAVA para principiantes: más de 100 tutoriales prácticos en vídeo de Java
- Iterador de Java: aprenda a usar iteradores en Java con ejemplos
- Tutorial de longitud de matriz de Java con ejemplos de código
- Matriz irregular en Java - Tutorial con ejemplos
- Invertir una matriz en Java: 3 métodos con ejemplos
- Cómo ordenar una matriz en Java - Tutorial con ejemplos
- Funciones destacadas de Java 8 con ejemplos de código