El alcance y la relación de Iterator y Listiterator:
(1) Se puede utilizar el iterador para implementar la lista de interfaz iterativa ArrayList, LinkedList, Map, etc.
(2) Listiterator, como su nombre lo indica, se usa para iterar la lista para implementar ArrayList y LinkedList.
(3) Como se puede ver en el código fuente o la documentación de la API, Iterator es la clase principal de Listiterator.
Public Interface Listiterator <E> extiende Iterator <E> {// omitir ...}Se han agregado nuevos métodos a ListIterator.
Análisis de la instancia de posición del cursor implícito del iterador:
Como se muestra en la figura anterior, hay cuatro elementos A, B, C, D en la lista de colecciones a la que el iterador debe iterar. Cuando se llama al método xxx.iterator () o xxx.listiterator (),
El iterador apunta a la posición de iterator_one, y cuando se llama el método xxx.next (), la posición del iterador apunta a la posición iterator_TWO.
La posición a la que señala el iterador no está directamente opuesta al elemento, sino entre los elementos.
Métodos en iterador y listiterator:
------ Método en iterador:
Resumen de los métodos oficiales de API:
Análisis de métodos:
HasNext (): determina si hay un elemento en la siguiente posición señalada por el iterador del elemento en la colección. Devolver verdadero, de lo contrario regresar falso
Siguiente (): Devuelve el valor del siguiente elemento en la posición señalada por el iterador.
eliminar (): Retire el valor eliminado por el iterador a través del iterador.
------ Método en ListIterator:
Resumen de los métodos oficiales de API:
Análisis de métodos:
Agregar (ee): inserte un elemento especificado en la colección. La posición de inserción está relacionada con la última operación Next () o el método anterior ().
Si la última operación es Next (), el elemento se inserta después del elemento que se retira a continuación, y si es anterior (), el elemento se inserta antes de que se elimine el elemento.
HASNEXT (): Cuando el conjunto se atraviesa en orden positivo, determina si existe el siguiente elemento apuntado por el cursor implícito. Si existe, devuelve verdadero, de lo contrario devuelve falso.
Hasprevious (): Cuando el conjunto está atravesado, determina si existe el elemento anterior del cursor implícito. Si existe, devuelve verdadero, de lo contrario devuelve falso.
Next (): Devuelve el siguiente valor del elemento en la posición señalada por el cursor implícito.
nextIndex (): Devuelve el valor de índice del siguiente elemento en la posición señalada por el cursor implícito.
Anterior (): Devuelve el valor del elemento anterior en la posición señalada por el cursor implícito.
AnteriorIndex (): Devuelve el valor de índice del elemento de posición anterior apuntado por el cursor implícito.
remove (): Eliminar elementos de la colección no es eliminar todos los elementos, sino para eliminar los elementos devueltos por la última operación Next () o anterior ().
Si Next () o anterior () no devuelve un valor, se informará un error.
set (ee): reemplace el elemento devuelto por Next () o anterior () con E de la lista. Por ejemplo, si el siguiente () se saca como A, puede reemplazar un con uno por set.
Ejemplo 1:
paquete com.lanhuigu.java; import java.util.arrayList; import java.util.list; import java.util.listiterator; public class listIterAteratorApitest {public static void main (string [] args) {list> list = new List = new ArrayList <String> (); list.add ("a"); list.add ("b"); list.add ("c"); list.add ("d"); // En este momento, el iterator apunta a iterator_one posicion listIterator <string> listIterator = list.listiterar (); // en este momento, el iterator apunta a Iterator_twiter string string string = list = listIterator.next (); // Eliminar el elemento listIterator.remove (); // Eliminar el elemento recuperado por siguiente. En este momento, A ha sido eliminado de la colección. Agregar elemento // listIterator.previous (); listIterator.add ("e"); // Antes de señalar la posición iterator_two, es la posición anterior // imprime el elemento recuperado por siguiente. System.out.println ("FirstElement:" + FirstElement); // Reinicializa la posición de señalización a la posición iterator_One, pero a no se ha eliminado, y agregue e listIterator = list.ListIterator (); while (listIterator.hasNext ()) {System.out.println(listIterator.next());}System.out.println("--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------- list.listiterator ();Ejemplo 2:
paquete com.lanhuigu.java; import java.util.arrayList; import java.util.iterator; import java.util.list; import java.util.listiterator; public class IteratorAtapitest {public static void main (string [] args) {list <dtring> list = newe ArrayList <String> (); list.add ("a"); list.add ("b"); list.add ("c"); list.add ("d"); // La primera forma de atravesar el conjunto es atravesar directamente las declaraciones de bucle (para, do-when, while) // para (string e: list) {System.out.println (e);} System.out.println ("--------------------"); // La segunda forma de atravesar el set (iterator) iterator <String> iterator = list.iterator (); while (iterator.hasnext ()) {System.out.println (iterator.next ());} system.out.println ("------------------------------"); // la tercera forma de atravesar el conjunto (listiterator) listIterator <tring> listIterator = list.listIterator (); while (listIterator.hasNext ()) {System.out.println (listIterator.next ());} System.out.println ("-------------------");}}Resumir
Lo anterior es toda la explicación detallada de los ejemplos Iterator y Listiterator en Java. Espero que sea útil para todos. Los amigos interesados pueden continuar referiéndose a otros temas relacionados en este sitio. Si hay alguna deficiencia, deje un mensaje para señalarlo. ¡Gracias amigos por su apoyo para este sitio!