Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: eduardoc en 04 de Julio 2016, 00:07

Título: Código ejemplo ArrayList api Java crear una lista Ejercicio resuelto CU00665B
Publicado por: eduardoc en 04 de Julio 2016, 00:07
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 (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();
    }
}
Título: Re:Ejercicio: (CU00665B) - Clase ArrayList del api Java.
Publicado por: Dimitar Stefanov 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.
Título: Re:Ejercicio: (CU00665B) - Clase ArrayList del api Java.
Publicado por: eduardoc 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.