En Java, si un iterador de colección ha completado la iteración y desea continuar iterando, ¿puede simplemente llamar al iterador nuevamente para devolver una nueva colección?
Respuesta: Sí, necesitas llamar al método .iterator() nuevamente para volver a colocar un nuevo iterador.
Razón: 1: Porque el iterador se ha agotado y no hay elementos en él,
2: Y el lenguaje Java no proporciona un método para restablecer el iterador.
El código es el siguiente
import?java.util.ArrayList;
import?java.util.Iterator;
público ?clase? ListDemo?{
public?static?void?main(String[]?args)?{
ArrayListlt;Integergt;?list?=?new?ArrayListlt;Integergt ;() ;
lista.add(5);
lista.add(3
lista.add(2);
Iteratorlt;Integergt;?it?=?list.iterator();
mientras?{
System.out.println(it.next()); p>
}
System.out.println(it.hasNext()); //"false" significa que no hay más elementos
//System.out. println( it. next());//lanza una excepción?NoSuchElementException
it?=?list.iterator();?
}
}
Ampliar el pensamiento:
Para este tipo de problemas, las personas a menudo no están familiarizadas con las clases de Java. A menudo puede usar documentos API de Java y verificar los documentos. Comprenderá rápidamente qué son. Qué son los métodos de una determinada clase y cómo heredarlos. Qué interfaces están incluidas, etc.
Por ejemplo, la descripción del método de la clase Iterator es la siguiente.
Resumen del método
booleano hasNext()
Devuelve verdadero si todavía hay elementos por recorrer.
E next()
Devuelve el siguiente elemento de la iteración.
void remove()
Elimina el último elemento devuelto por el iterador de la colección a la que apunta el iterador (operación opcional).