Hola a todos. Os paso mi código del ejercicio CU00920C del tutorial pdf de programación Java. Gracias. Un saludo.
Clase TipoDeCuadrupedo
public enum TipoDeCuadrupedo {
LEON,PERRO,GATO,ELEFANTE
}
Clase Cuadrupedo
public class Cuadrupedo {
private int idCuadrupedo;
private String tipo; //León, Perro, Gato, Elefante
public Cuadrupedo(){
idCuadrupedo=0;
tipo="";
}
public Cuadrupedo(int idCuadrupedo,String tipo){
this.idCuadrupedo=idCuadrupedo;
this.tipo=tipo;
}
public int getIdCuadrupedo(){
return idCuadrupedo;
}
public String getTipoCuadrupedo(){
return tipo;
}
@Override
public String toString(){
return "Cuadrupedo->ID: "+idCuadrupedo+" Tipo: "+tipo;
}
public void setTipusCuadrupedo(int tipus){
switch(tipus){
case 0:this.tipo=TipoDeCuadrupedo.LEON.toString();break;
case 1:this.tipo=TipoDeCuadrupedo.PERRO.toString();break;
case 2:this.tipo=TipoDeCuadrupedo.GATO.toString();break;
case 3:this.tipo=TipoDeCuadrupedo.ELEFANTE.toString();break;
}
}
}
Clase ListaDeCuadrupedos
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
*
* @author
*/
public class ListaDeCuadrupedos {
private List<Cuadrupedo> listaCuadrupedos;
public ListaDeCuadrupedos(){
listaCuadrupedos=new ArrayList<Cuadrupedo>();
}
public List<Cuadrupedo> getLista(){return listaCuadrupedos;}
public void addCuadrupedo(Cuadrupedo cuadrupedo){
listaCuadrupedos.add(cuadrupedo);
}
public Iterator<Cuadrupedo> iterator() {
return new MiIteradorListaCuadrupedos();
}
protected class MiIteradorListaCuadrupedos implements Iterator<Cuadrupedo>{ // Clase interna
public int posicion = 0;
public boolean sepuedeeliminar = false;
@Override
public boolean hasNext() {
return posicion < listaCuadrupedos.size();
}
@Override
public Cuadrupedo next() {
Cuadrupedo res = listaCuadrupedos.get(posicion); // Creamos un objeto Cuadrupedo igual al que recorremos
posicion ++;
sepuedeeliminar = true;
return res;
}
@Override
public void remove() {
if (sepuedeeliminar) {
listaCuadrupedos.remove(posicion-1);
posicion--;
sepuedeeliminar = false; }
}
} // Cierre de la clase interna
}
Clase con el main
import java.util.Iterator;
import java.util.Random;
/**
*
* @author
*/
public class Principal {
public static void main(String[]args){
Cuadrupedo a=new Cuadrupedo();
ListaDeCuadrupedos lista=new ListaDeCuadrupedos();
Random rnd=new Random();
int leones=0;
int perros=0;
int gatos=0;
int elefantes=0;
for(int i=0;i<10000;i++){
a.setTipusCuadrupedo(rnd.nextInt(4));
lista.addCuadrupedo(new Cuadrupedo(i,a.getTipoCuadrupedo()));
if(a.getTipoCuadrupedo()=="LEON"){
leones++;
}else if(a.getTipoCuadrupedo()=="PERRO"){
perros++;
}else if(a.getTipoCuadrupedo()=="GATO"){
gatos++;
}else{
elefantes++;
}
}
Iterator<Cuadrupedo> it=lista.iterator();
while(it.hasNext()){
Cuadrupedo tmp=it.next();
if (tmp.getIdCuadrupedo()%1000==0){ //multiplos de 1000
System.out.println(tmp);
}
}
System.out.println("Resumen: hay "+leones+" leones, "+perros+" perros, "+
gatos+" gatos y "+elefantes+" elefantes");
}
}