Autor Tema: Curso Java Nivel Avanzado I Inteface List tipo estático y dinámico CU00920C  (Leído 1967 veces)

nia

  • Sin experiencia
  • *
  • Mensajes: 6
    • Ver Perfil
Buenas,

Adjunto como código el ejercicio CU00920C del Curso Lenguaje de programación Java Nivel Avanzado I, Interface LIST.


Clase Cuadrupedo:
Código: [Seleccionar]
//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:
Código: [Seleccionar]
//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.
« Última modificación: 12 de Octubre 2016, 13:47 por Alex Rodríguez »

ESOJ

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 143
    • Ver Perfil
Re:Java Nivel Avanzado I - INTERFACE LIST - Ejercicio CU00920C
« Respuesta #1 en: 04 de Octubre 2016, 07:28 »
Buenos días.

Yo la clase Cuadrupedo la haría asi:

Código: [Seleccionar]
/* 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:

Código: [Seleccionar]
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

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".