Autor Tema: Código ejemplo ArrayList api Java crear una lista Ejercicio resuelto CU00665B  (Leído 4030 veces)

eduardoc

  • Principiante
  • **
  • Mensajes: 50
    • Ver Perfil
Buenas, dejo un ejercicio para quien pueda revisarlo. Es el CU00665B del manual de programación en Java para no expertos. Gracias de antemano. Saludos,

Edu.

Citar
EJERCICIO

Crea una clase denominada ListaCantantesFamosos que al ser inicializada contenga un ArrayList con tres Strings que sean el nombre de cantantes famosos. Crea una clase test con el método main que inicialice un objeto ListaCantantesFamosos, pida dos cantantes famosos más al usuario, los añada a la lista y muestre el contenido de la lista por pantalla.

https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=631:clase-arraylist-del-api-java-metodos-add-size-etc-concepto-de-clase-generica-o-parametrizada-cu00665b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188


Código: [Seleccionar]
public class TestListaCantantes{
    public static void main (String [] args){
        System.out.println("Inicio del programa");
        System.out.println("Por favor, introduzca nombre 1:"); EntradaDeTeclado entrada1 = new EntradaDeTeclado();
        System.out.println("Por favor, introduzca nombre 2:"); EntradaDeTeclado entrada2 = new EntradaDeTeclado();
        System.out.println("Gracias");
       
        ListaCantantesFamosos listaCantantes = new ListaCantantesFamosos("Cantantes famosos");

        // Agregado de 3 cantantes.
        listaCantantes.addNombre("Madonna");
        listaCantantes.addNombre("Sting");
        listaCantantes.addNombre("Carlos Gardel");
       
        // Pedido de dos nombres al usuario.
        listaCantantes.addNombre (entrada1.getEntrada() );
        listaCantantes.addNombre (entrada2.getEntrada() );
       
        System.out.println ("La lista ha quedado formada por " + listaCantantes.getTamañoLista() + " elementos");
        for (int i = 0; i < listaCantantes.getTamañoLista(); i++){
            System.out.println ("Elemento " + i + ": " + listaCantantes.getNombreCantante(i) );
        }
    }
}

Código: [Seleccionar]
// (CU00665B) - Clase ArrayList del api Java.
import java.util.ArrayList;

public class ListaCantantesFamosos{
    private String nombreDeLaLista;
    private ArrayList<String> listaCantantesFamosos;
   
    public ListaCantantesFamosos(String nombre){         // Constructor.
        nombreDeLaLista = nombre;
        listaCantantesFamosos = new ArrayList<String>(); // Crea objeto del tipo ArrayList.
    }
   
    // Agregar elemento a la lista.
    public void addNombre (String valor_nombre){listaCantantesFamosos.add(valor_nombre);}
   
    // Getter tamaño de lista.
    public int getTamañoLista (){return listaCantantesFamosos.size();}
   
    //Getter nombres.
    public String getNombreCantante(int posicion){return listaCantantesFamosos.get(posicion);}
}

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

public class EntradaDeTeclado {
    private String entradaTeclado; //Variable de instancia (campo) de la clase
 
    public EntradaDeTeclado ()  { //Constructor
        entradaTeclado="";
        pedirEntrada(); //Esto es una llamada a un método interno. Al crear un objeto ejecutamos el método
    } //Cierre del constructor
 
    public void pedirEntrada ()  {  //Método de la clase         
        Scanner entradaEscaner = new Scanner (System.in);
        entradaTeclado = entradaEscaner.nextLine ();     }
 
    public String getEntrada () { return entradaTeclado; }
   
    public String getPrimeraPalabra ()  {
        for (int i=0; i < entradaTeclado.length() - 1; i++) {
            if (entradaTeclado.substring (i, i+1).equals(" ") ) {     //IMPORTANTÍSIMO: COMPARAMOS CON EQUALS
                return entradaTeclado.substring(0, i+1);         }
        }
        return entradaTeclado;
    }
 
    public int getLongitud ()  {  //Método de la clase
        return entradaTeclado.length();
    }
}
« Última modificación: 10 de Julio 2016, 17:57 por Alex Rodríguez »

Dimitar Stefanov

  • Experto
  • *****
  • Mensajes: 598
    • Ver Perfil
Re:Ejercicio: (CU00665B) - Clase ArrayList del api Java.
« Respuesta #1 en: 04 de Julio 2016, 10:42 »
Buenos días, Edu.

Todo excelente. Con el temor de decirme que soy pesado te diría algo que ya te había dicho (creo), podrías haber declarado la instrucción de impresión así:

Código: [Seleccionar]
System.out.println ("Elemento " + (i +1)+ ": " + listaCantantes.getNombreCantante(i) );
en la clase "TestListaCantantes". Creo que sabes qué diferencia hay entre esta instrucción y la que habías establecido tú.

Quería aprovechar la oportunidad para decirte que tus ejercicios son muy ordenados. Incluyes tanto el enunciado del ejercicio como todas las clases. Da gusto corregir ejercicios tan bien estructurados. Lo estás haciendo muy bien. Sigue así.

Saludos.

eduardoc

  • Principiante
  • **
  • Mensajes: 50
    • Ver Perfil
Re:Ejercicio: (CU00665B) - Clase ArrayList del api Java.
« Respuesta #2 en: 04 de Julio 2016, 14:18 »
Dimiste, muchas gracias.

Con respecto a enumerar los ítems de la lista comenzando por el número 1, en vez de 0, estoy totalmente de acuerdo. Son detalles que a veces se pasan por alto y no deberían.

Jamás pensaré que alguien pueda ser un pesado por hacerme correcciones. Por el contrario estoy muy agradecido por el tiempo y generosidad para enseñarnos.
« Última modificación: 10 de Julio 2016, 17:57 por Alex Rodríguez »

 

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