Hola, respecto de la Entrega Nº912 del curso, me gustaría hacer un aporte y una consulta:
Aporte:
El ejercicio resulto de la entega da un Warning cuando uno compila la clase ConjuntoPersonas.
Esta advertencia deja de aparecer si hacemos el siguiente cambio en el método iterator()
public Iterator<Persona> iterator() {
Iterator it = new MiIteratorPersona();
return it;
}
por:
public Iterator<Persona> iterator() {
Iterator<Persona> it = new MiIteratorPersona();
return it;
}
Consulta:
En un párrafo de la entrega se dice:
Piensa que un iterador viene siendo “un clon” de la colección a recorrer. Es decir, en vez de operar directamente sobre la colección original operamos sobre una copia.
¿ Cuando se dice colección, a qué se refiere ? Porque si se refiere a lo que veníamos llamando colección: un vector, un ArrayList, un LinkedList, cualquier tipo List, etc. entonces por la forma en que vemos está implementada la interface Iterable, me da la sensación que no sería tan así, no es que "en vez de operar directamente sobre la colección original operamos sobre una copia."
Diría más bien que se crea un objeto distinto, pero que al fin y al cabo referencia a la misma coleccion (en el caso del ejemplo resuelto un vector) perteneciente a la clase sobre la cual se implementa la interface Iterable.
No estaríamos creando un "copia de la colección" en donde operar, que ahí si podríamos creo hablar de un clon de la colección.
En este caso sería tener un nuevo objeto (el iterador) que referencia a la colección del objeto cuyo tipo implementa la interface Iterable, pero la colección siempre es la misma (el vector).
¿ Estoy en lo correcto ?