Paso a dejar mi propuesta de la solución del ejercicio CU00920C del certificado Java avanzado de aprenderaprogramar.
package claseCU00920C;
public class Cuadrupedo {
	private int idCuadrupedo;
	private String tipo;
	public Cuadrupedo(int pIdCuadrupedo, String pTipo) {
		this.idCuadrupedo = pIdCuadrupedo;
		this.tipo = pTipo;
	}
	@Override
	public String toString() {
		return "Cuadrupedo-> ID " + this.idCuadrupedo + " Tipo: " + this.tipo;
	}
}
package claseCU00920C;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Random;
public class Programa {
	public static void main(String[] args) {
		List<Cuadrupedo> lc = new ArrayList<Cuadrupedo>();
		Random r = new Random();
		Cuadrupedo temp = null;
		int totLeones = 0, totGatos = 0, totPerros = 0, totElefantes = 0;
		String tipoTemp;
		for (int i = 0; i < 10000; i++) {
			switch (r.nextInt(4)) {
			case 0:
				tipoTemp = "León";
				totLeones++;
				break;
			case 1:
				tipoTemp = "Gato";
				totGatos++;
				break;
			case 2:
				tipoTemp = "Perro ";
				totPerros++;
				break;
			default:
				tipoTemp = "Elefante ";
				totElefantes++;
				break;
			}
			lc.add(new Cuadrupedo(i + 1, tipoTemp));
		}
		Iterator<Cuadrupedo> it = lc.iterator();
		while (it.hasNext()) {
			temp = it.next();
			System.out.println(temp);
		}
		System.out.println("Resumen: hay " + totLeones + " Leones, " + totGatos + " Gatos, " + totPerros + " Perros y "
				+ totElefantes + " Elefantes");
	}
}