Autor Tema: Ejercicio con solución Ejemplo clase ArrayList api Java parametrizada CU00665B#  (Leído 5083 veces)

Cabanota

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 26
    • Ver Perfil
Esta fue la solución que le di al ejercicio CU00665B del curso de programación básico en Java:

Clase con sus respectivos métodos.

Código: [Seleccionar]

import java.util.*;

public class ListaCantantesFamosos{
    private ArrayList<String> nombreCantantes;
   
    public ListaCantantesFamosos(){
        nombreCantantes = new ArrayList<String>();
        nombreCantantes.add("Joe Arroyo");
        nombreCantantes.add("Hector Lavoe");
        nombreCantantes.add("Grupo niche");
    }
   
    public ArrayList<String> getNombreCantantes(){
        return nombreCantantes;
    }
   
    public int getTamaño(){
        return nombreCantantes.size();
    }
   
    public void addNombre(String nombre){
        nombreCantantes.add(nombre);
    }
}

Clase con el método main.
Código: [Seleccionar]
import java.util.*;

public class TestListaCantantesFamosos{
   
    public TestListaCantantesFamosos(){
    }
   
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        ListaCantantesFamosos list = new ListaCantantesFamosos();
       
        System.out.print("Ingrese el primer Cantante famoso: ");
        String nom1 = sc.nextLine();
        list.addNombre(nom1);
       
        System.out.print("Ingrese el segundo Cantante famoso: ");
        String nom2 = sc.nextLine();
        list.addNombre(nom2);
       
        System.out.println(); //Lo puse para dejar un espacio.
       
        System.out.println("Contenido de la lista en fila: " + list.getNombreCantantes());
       
        System.out.println(); //Lo puse para dejar un espacio.
       
        System.out.println("Contenido de la lista en columna: ");
        for(int i = 0; i < list.getTamaño();i++){
             System.out.println(list.getNombreCantantes().get(i));
        }
    }
}

Si encuentran mejoras que puedo hacer en el código o si no entendí bien el enunciado del ejercicio, estaría muy agradecidos con ustedes por leerlas.

De antemano, muchas gracias.

Saludos.
« Última modificación: 09 de Octubre 2020, 13:10 por Alex Rodríguez »

Jorge lopez

  • Sniper
  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 248
  • @SniperOfElite
    • Ver Perfil
Re:Solución ejercicio: CU00665B - Clase ArrayList del api Java.
« Respuesta #1 en: 02 de Noviembre 2014, 04:55 »
 Tu código cumple con lo requerido, pero se puede mejorar.

Clase CantantesFamosos: Todo correcto

Clase TesCantantesFamosos: En esta clase lo que mas resalta es la duplicidad de código. Usar lineas de código idénticas (duplicar código) es algo que todo buen programador debe de evitar, una buena alternativa para evitar duplicar código, es ligar el código el cual nos vemos en la necesidad de duplicar a un método, así en ves de por ejemplo tener este fragmento de tu código:
Código: [Seleccionar]
System.out.print("Ingrese el primer Cantante famoso: ");
        String nom1 = sc.nextLine();
repetido varias veces a lo largo del código de la clase, pues usaríamos un método (o bucle como es en este caso) para evitar la duplicidad. Ahora esto parece insignificante porque solo repites este código dos veces, pero que harías si tuvieras que introducir 100 nombres de cantantes famosos?

A continuación dejo el código de la clase TestCantantesFamosos, ligeramente editada y comentada en los puntos editados:

clase TestCantantesFamosos
Código: [Seleccionar]
import java.util.Scanner;
/**
 * Write a description of class TestListaCantantesFamosos here.
 *
 * @author (your name)
 * @version (a version number or a date)
 */
public class TestListaCantantesFamosos{
   
    public TestListaCantantesFamosos(){
    }
   
    public static void main(String[] args){
      Scanner sc = new Scanner(System.in);
      ListaCantantesFamosos list = new ListaCantantesFamosos();
      System.out.print("Esta lista contiene " + list.getTamaño() + " nombres de cantantes famosos, por favor escribe 2 nombres mas para completar el top 5 de la semana.\n\n"); 
      for(int i = 0; i < 2; i++)
      {
          System.out.print("Ingrese el cantante famoso numero " + (list.getTamaño() + 1 )+ ": ");
          list.addNombre(sc.nextLine());
      } /*Con este bucle for, reducimos la cantidad de codigo y evitamos la duplicidad de codigo que tenias anteriormente.*/
       
      System.out.println("\nContenido de la lista en fila: " + list.getNombreCantantes());       
      //System.out.println(); //Lo puse para dejar un espacio. Otra opción para dejar un espacio o insertar un salto de linea es el uso de (\n)       
      System.out.println("\nContenido de la lista en columna:\n");
      for(int i = 0; i < list.getTamaño();i++){
             System.out.println(list.getNombreCantantes().get(i));
      }
    }
}

Saludos!
while(estesVivo)
{
  aprende();
  ayuda();
  enseña();
}
if(mueres){teRecordaran();}

 

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