Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: nia en 03 de Octubre 2016, 11:57
-
Buenas,
Adjunto como código el ejercicio CU00920C del Curso Lenguaje de programación Java Nivel Avanzado I, Interface LIST.
Clase Cuadrupedo:
//CU00920C
public class Cuadrupedo {
private int idCuadrupedo;
private String tipo; //"León", "Gato", "Perro", "Elefante"
//Constructor 1
public Cuadrupedo(int idCuadrupedo, String tipo) {
this.idCuadrupedo = idCuadrupedo;
this.tipo = tipo;
}
//Constructor 2 - El número aleatorio se pasa por parámetro y selecciona un tipo
public Cuadrupedo (int idCuadrupedo, int numTipo){
this.idCuadrupedo = idCuadrupedo;
switch (numTipo){
case 0: setTipo("León");
break;
case 1: setTipo("Gato");
break;
case 2: setTipo("Perro");
break;
case 3: setTipo("Elefante");
break;
default: setTipo("null");
break;
}
}
//Getters y Setters
public int getIdCuadrupedo() {
return idCuadrupedo;
}
public void setIdCuadrupedo(int idCuadrupedo) {
this.idCuadrupedo = idCuadrupedo;
}
public String getTipo() {
return tipo;
}
public void setTipo(String tipo) {
this.tipo = tipo;
}
//Método mostrar
public String toString(){
return "Cuadrúpedo -> ID: " + getIdCuadrupedo() + " Tipo: " + getTipo();
}
}//Cierre clase
Clase Main - TestCuadrupedo:
//CU00920C
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Random;
public class TestCuadrupedo {
public static void main(String[] args) {
List <Cuadrupedo> lc = new ArrayList <Cuadrupedo>();
Random r = new Random();
Cuadrupedo temp = null;
int sumaLeon=0;
int sumaGato=0;
int sumaPerro=0;
int sumaElefante=0;
//Crea 10000 Cuadrupedos con id incrementado con inicio a 1000 y random para el tipo.
int cont =0; //contador para iniciar id e incrementarlo.
for ( int i=0;i<10000;i++){
lc.add(new Cuadrupedo((cont+1000),r.nextInt(4)));
cont+=1000;
}
Iterator <Cuadrupedo> it = lc.iterator();
//Recorremos el iterador mostrando el cuadrupedo y sumando cada tipo
while (it.hasNext()){
temp = it.next();
System.out.println(temp);
if(temp.getTipo()=="León"){
sumaLeon++;
}else if(temp.getTipo()=="Gato"){
sumaGato++;
}else if(temp.getTipo()=="Perro"){
sumaPerro++;
}else if (temp.getTipo()=="Elefante"){
sumaElefante++;
}
}//cierre while
System.out.println("\nResumen: hay " +sumaLeon+ " Leones, " + sumaGato + " Gato, " + sumaPerro + " Perros y " + sumaElefante + " Elefantes.");
}//ciere main
}//cierre clase
Un saludo.
-
Buenos días.
Yo la clase Cuadrupedo la haría asi:
/* Ejemplo Interface Iterator aprenderaprogramar.com */
public class Cuadrupedo{
private int idCuadrupedo;
private String nombreCuadrupedo;
public Cuadrupedo(int idCuadrupedo, String nombreCuadrupedo) {
this.idCuadrupedo = idCuadrupedo;
this.nombreCuadrupedo = nombreCuadrupedo;
}
public String getNombreCuadrupedo(){return nombreCuadrupedo;}
public int getIdCuadrupedo(){return idCuadrupedo;}
@Override
public String toString() {
return "Animal-> ID: "+idCuadrupedo+" Nombre: "+nombreCuadrupedo+"\n";
}
}
Así podríamos reutilizar esta clase para cualquier nomre de animal.
El programa principal quedaría:
import java.util.List;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.Random;
public class Programa2 {
public static void main(String arg[]) {
List<Cuadrupedo> lp = new ArrayList<Cuadrupedo>(); // El tipo es List y lo implementamos con ArrayList
String[] Cuadrupedos={"Leon","Gato","Perro","Elefante"};
Random r = new Random();
Cuadrupedo temp = null;
String tipoCuadrupedo;
int numeroLeones =0;
int numeroGatos =0;
int numeroPerros = 0;
int numeroElefantes = 0;
/*Aquí introduciríamos los 10000 animales que pedía el ejercicio*/
for(int i=1;i<10001;i++){lp.add(new Cuadrupedo(i,Cuadrupedos[r.nextInt((0)+4)]));}
Iterator<Cuadrupedo> it = lp.iterator();
while(it.hasNext()){
temp = it.next();
tipoCuadrupedo=temp.getNombreCuadrupedo();
switch (tipoCuadrupedo){
case "Leon":
numeroLeones++;
break;
case "Gato":
numeroGatos ++;
break;
case"Perro":
numeroPerros ++;
break;
case "Elefante":
numeroElefantes ++;
break;
}
/*Con ésto seleccionaríamos los animales con id múltiplo de 1000 para mostrarlos por consola*/
if (temp.getIdCuadrupedo()%1000==0){
System.out.println(temp);}
}
System.out.println("Hay " + numeroLeones +" Leones,"+numeroGatos +" Gatos,"+numeroPerros +" Perros y "+numeroElefantes +" Elefantes");
}
}
Un saludo