Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: @mayakoski en 12 de Marzo 2020, 14:38

Título: Ejercicios resueltos Java implementacion interfaz iterable implements CU00915C
Publicado por: @mayakoski en 12 de Marzo 2020, 14:38
Mi propuesta al ejercicio planteado CU00915C del curso de programación orientada a objetos avanzada con Java de aprenderaprogramar

Saludos

Código: [Seleccionar]
package claseCU00915C;

public class AvesEnZoo {
private String tipoDeAve;
private int numeroAves, numeroMachos, numeroHembras;

public AvesEnZoo(String pTipAve, int pNumAvez, int pNumMac, int pNumhem ) {
this.tipoDeAve = pTipAve;
this.numeroAves = pNumAvez;
this.numeroMachos = pNumMac;
this.numeroHembras = pNumhem;
}

public String ToString() {
return(this.tipoDeAve+" "+this.numeroAves+" "+this.numeroMachos+" "+this.numeroHembras);
}

}


Código: [Seleccionar]
package claseCU00915C;

import java.util.Iterator;

public class GruposDeAvesZoos implements Iterable<AvesEnZoo> {

public AvesEnZoo[] conjuntoAves;

public GruposDeAvesZoos(AvesEnZoo[] p) {
conjuntoAves = p;
}

@Override
public Iterator<AvesEnZoo> iterator() {
Iterator it = new MiIteratorAves();
return it;
}

protected class MiIteratorAves implements Iterator<AvesEnZoo> {

int posicionArray;

public MiIteratorAves() {
posicionArray = 0;
}

@Override
public boolean hasNext() {
// boolean result;
if (posicionArray < conjuntoAves.length) {
return true;
}
return false;
}

@Override
public AvesEnZoo next() {
posicionArray++;
return conjuntoAves[posicionArray - 1];
}

}

}


Código: [Seleccionar]
package claseCU00915C;

import java.util.Iterator;

public class Programa1 {
public static void main(String[] args) {
AvesEnZoo a1 = new AvesEnZoo("Aguilas  ", 35, 10, 25);
AvesEnZoo a2 = new AvesEnZoo("Pinguinos", 25, 10, 15);
AvesEnZoo a3 = new AvesEnZoo("Periquitos", 5, 3, 2);
AvesEnZoo a4 = new AvesEnZoo("Pinguinos", 100, 55, 45);
AvesEnZoo a5 = new AvesEnZoo("Halcones", 80, 25, 55);

AvesEnZoo[] ca = { a1, a2, a3, a4, a5 };
GruposDeAvesZoos gaz = new GruposDeAvesZoos(ca);

System.out.println("TIPO |TOTAL |MACHOS |HEMBRAS \n");
for (AvesEnZoo avesEnZoo : gaz) {

System.out.println(avesEnZoo.ToString());
}
}

}
Título: Re: Ejercicios resueltos Java implementacion interfaz iterable implements CU00915C
Publicado por: Ogramar en 13 de Septiembre 2020, 12:12
Buenas, el ejercicio está bien resuelto pero no cumple lo que se pedía "Utilizando un iterador, muestra los datos de los objetos presentes en el objeto GruposDeAvesZoos.", o al menos no lo cumple directamente, en el sentido de que no se utiliza un iterador explícito, sino un for extendido.

Puede verse una solución correcta con uso de un iterador explícito en https://aprenderaprogramar.com/foros/index.php?topic=5922.0

Salu2