Autor Tema: Interface List del api java. Clase ArrayList, LinkedIn, Stack, Vector CU00920C  (Leído 1727 veces)

Jobemar

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 6
    • Ver Perfil
Saludos dejo acá mi código para el ejercicio CU00920C del tutorial de programación Java avanzado con ejercicios resueltos.


Clase Cuadrupedo

Código: [Seleccionar]
import java.util.Random;

public class Cuadrupedo {

    public static final String[] animal = {"Leon", "Gato", "Perro", "Elefante"};
    private final Random rdm;
    private final int id;
    private final String tipo;
    private static int i = 1;

    public Cuadrupedo() {
        rdm = new Random();
        tipo = animal[rdm.nextInt(animal.length)];
        id = i;
        i++;
    }

    public int getId() {
        return id;
    }

    public String getTipo() {
        return tipo;
    }

    @Override
    public String toString() {
        return "Cuadrupedo -> ID: " + id + " Tipo: " + tipo;
    }
}



Clase Main

Código: [Seleccionar]
import java.util.ArrayList;
import java.util.List;

public class Main {

    public static void main(String[] args) {
        // TODO code application logic here
        int cantidadCuadrupedos;
        cantidadCuadrupedos = 10000;
        List<Cuadrupedo> list = new ArrayList<Cuadrupedo>();
        int cantidadAnimales = Cuadrupedo.animal.length;
        int[] animalesPorTipo = new int[cantidadAnimales];
        for (int i = 0; i < 10000; i++) {
            list.add(new Cuadrupedo());
        }
        int k = 0;
        while (k < cantidadCuadrupedos) {
            for (Cuadrupedo c : list) {
                if (c.getId() % 1000 == 0 && c.getId() > 0) {
                    System.out.println(c);
                }
                if (c.getTipo().equals(Cuadrupedo.animal[k])) {
                    animalesPorTipo[k] += 1;
                }
            }
            k++;
        }
        System.out.print("Resumen: hay ");
        for (int j = 0; j < animalesPorTipo.length; j++) {
            if (j == animalesPorTipo.length - 1) {
                System.out.print(animalesPorTipo[j] + "  " + Cuadrupedo.animal[j] + "s. ");
            } else {
                System.out.print(animalesPorTipo[j] + "  " + Cuadrupedo.animal[j] + "s, ");
            }
        }
     }
}

« Última modificación: 30 de Septiembre 2020, 19:54 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2662
    • Ver Perfil
Re:Interface List del api java. Clase ArrayList, LinkedIn, Stack, Vector CU00920C
« Respuesta #1 en: 30 de Septiembre 2020, 20:03 »
Buenas, para quien revise este código, cumple correctamente con lo que se pedía en el ejercicio y además lo hace de una forma original respecto a los ejemplos del propio curso y respecto a otras soluciones de los foros.

Invito a quien tenga interés a comparar este código con otra solución existente en los foros disponible en https://aprenderaprogramar.com/foros/index.php?topic=6155.0

Es interesante ver cómo se declaran atributos estáticos y/o constantes; la invocación con notación de punto de atributos estáticos; el uso del constructor para crear el tipo de animal de forma aleatoria y el uso de un atributo estático para contar el número de cuadrúpedos creados, etc.

Lo dicho, quien tenga interés que revise el código, porque merece la pena ver las ideas que contiene.

Salu2

 

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".