sistemas

Páginas: 9 (2121 palabras) Publicado: 4 de julio de 2014
Ejercicio y ejemplo resuelto interface Iterable y método Iterator Java.

APRENDERAPROGRAMAR.COM

EJERCICIO Y EJEMPLO
RESUELTO: USO DE LA
INTERFACE ITERABLE DEL
API DE JAVA Y MÉTODO
ITERATOR. RECORRER
COLECCIONES DE OBJETOS
(CU00912C)

Sección: Cursos
Categoría: Lenguaje de programación Java nivel avanzado I
Fecha revisión: 2029
Resumen: Entrega nº12 curso “Lenguaje de programaciónJava Nivel Avanzado I”.

© aprenderaprogramar.com, 2006-2029

Autor: Manuel Sierra

Ejercicio y ejemplo resuelto interface Iterable y método Iterator Java.

EJERCICIO Y EJEMPLO RESUELTO CON INTERFACE ITERABLE Y MÉTODO ITERATOR
La interface iterable está incluida en el api de Java, en concreto en el paquete java.lang. Es una interfaz
de uso habitual al igual que el caso de las interfacesCloneable y Comparable que ya hemos explicado.
Implementar Iterable tan sólo obliga a sobreescribir un método que es iterator(). Este método debe
devolver un objeto de tipo Iterator. Vamos a explicar la terminología porque puede parecer confusa.

Lo primero es tener claro que hay que distinguir el método iterator (en minúsculas) y el tipo definido en
el api de Java Iterator (con mayúsculas).Iterator con mayúsculas es un tipo definido por la Interface
Iterator, igual que List es un tipo definido por la interface List. Por el contrario, iterator() con minúsculas
es un método igual que puede ser toString() o cualquier otro. Esto hay que tenerlo claro desde el
principio para no llevar a confusiones.
¿Qué es un objeto de tipo Iterator y cómo se implementa el método iterator()? Eso eslo que vamos a
explicar a continuación, con detenimiento y a través de un ejemplo para entenderlo mejor.
Lo primero que vamos a recordar es que una interface es un tipo abstracto: no puede ser instanciado
porque carece de constructor. Sin embargo, puede definirse un objeto del tipo definido por la interface
si se instancia en una clase que implementa la interface. Esto puede parecercomplicado pero con un
ejemplo lo veremos claramente:
List miListaDePersonas = new List (); es erróneo ¿Por qué? Porque List es una
interface y carece de constructor. En cambio sí sería una escritura correcta definir como de tipo List una
colección que creamos instanciándola con una clase que tiene implementada la interface List como es
ArrayList: List miListaDePersonas = new ArrayList ();
De lamisma manera que no podemos usar un constructor de List, tampoco podremos usar un
constructor para Iterator porque igualmente se trata de una interface sin constructor.
Pasemos a ver ejemplo de código. Vamos a trabajar como en los ejemplos anteriores con una clase
Persona y una clase Programa que hace uso de esta. Para ver la utilidad de la implementación de la
interface Iterable vamos anecesitar una colección o conjunto de personas que queremos recorrer. Por
ejemplo, imaginemos que tenemos a 15 personas y queremos saber las edades de cada una de ellas.
Para ello recorreremos la colección de personas extrayendo la edad cada vez que visitemos un objeto
de la colección. El método iterator() nos va a permitir obtener un objeto de tipo Iterator que representa
la colección a recorrer, ylos métodos disponibles para los objetos de tipo Iterator nos van a permitir
operar con cada elemento de la colección.
Para ello vamos a introducir una nueva clase que se va a llamar ConjuntoPersonas que va a ser
básicamente muy sencilla y se va a componer de un Array de Personas llamado conjuntoPersonas como
único atributo o propiedad. Ten en cuenta que el nombre de la clase es un nombrearbitrario: nos

© aprenderaprogramar.com, 2006-2029

Ejercicio y ejemplo resuelto interface Iterable y método Iterator Java.

referimos simplemente a un grupo de personas. En este caso, no hay relación ni con los set de Java ni
con los conjuntos matemáticos, se tratará simplemente de un array de objetos Persona. Escribe la clase
Persona que será conforme a esta definición:
/* Ejemplo...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Sistemas
  • Sistemas
  • Sistema
  • Sistemas
  • Sistemas
  • Sistemas
  • Sistemas
  • El sistema

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS