Hola a todos. A continuación añado mi implementación del ejercicio CU00920C del curso gratuito de programación Java avanzada de aprenderaprogramar. Para clarificar el código, he optado por crear un método en la clase principal para recorrer e imprimir los resultados.
Clase Cuadrupedo
package cu00920c.ejercicio;
public class Cuadrupedo {
private int idCuadrupedo;
private String tipo;
public Cuadrupedo(int idCuadrupedo, String tipo){
this.idCuadrupedo=idCuadrupedo;
this.tipo=tipo;
}
public void setId(int id){idCuadrupedo=id;}
public void setTipo(String tipo){this.tipo=tipo;}
public int getId(){return idCuadrupedo;}
public String getTipo(){return tipo;}
@Override
public String toString(){return "Cuadrúpedo-> ID: "+idCuadrupedo+" Tipo: "+tipo;}
}
Clase principal
package cu00920c.ejercicio;
import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Random;
public class CU00920CEjercicio {
public static void main(String[] args) {
List<Cuadrupedo> lista = new ArrayList<Cuadrupedo>();
String[] tipos = {"Leon", "Gato", "Perro", "Elefante"};
Random rnd = new Random();
for (int i=1;i<=10000;i++){
lista.add(new Cuadrupedo(i,tipos[rnd.nextInt(4)]));
}
recorrerLista(lista);
}
//Método para recorrer e mprimir la lista de cuadrúpedos
private static void recorrerLista(List<Cuadrupedo> lista){
int leones=0, gatos=0, perros=0, elefantes=0;
Iterator<Cuadrupedo> it =lista.iterator();
Cuadrupedo tmp=null;
String tipo;
while(it.hasNext()){
tmp = it.next();
tipo=tmp.getTipo();
if (tmp.getId()%1000==0){System.out.println(tmp);}
switch (tipo) {
case "Leon":
leones++;
break;
case "Gato":
gatos++;
break;
case "Perro":
perros++;
break;
default:
elefantes++;
break;
}
}
System.out.println("\nResumen: hay "+leones+" Leones, "+gatos+" Gatos, "+perros+" Perros y "+elefantes+" Elefantes");
}
}