Autor Tema: Ejercicio CU00665B ArrayList api java add size concepto clase generica parametri  (Leído 3026 veces)

el_calderas

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 43
    • Ver Perfil
Hola, esta es mi solución para este ejercicio del curso de java.

He utilizado tres clases, la clase ListaCantantesFamosos:

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

public class ListaCantantesFamosos
{
    private ArrayList<String>nombresCantantes;  //declaramos un objeto de tipo ArrayList
    private String nombreLista; //siempre hay que crear el objeto que contiene el nombre del array que creamos.
   
    //constructor
    public ListaCantantesFamosos(String nombre){ //al llamar al constructor nos pedira que introduzcamos el nombre de la lista
        nombreLista=nombre;
        nombresCantantes=new ArrayList<String>();
        nombresCantantes.add("Madona");// con el constructor, añadimos directamente 3 nombres a la lista
        nombresCantantes.add("Queen");
        nombresCantantes.add("Bon Jovi");
    }
   
    public void addNombre(String newNombre){//metodo para añadir nombres a la lista
        nombresCantantes.add(newNombre);
    }
       
    public String getNombre(int posicion){//metodo para obtener un nombre de la lista, segun su indicie
        if(posicion>=0 && posicion<nombresCantantes.size()){
            return nombresCantantes.get(posicion);
        }else{
            return "No existe nombre para la posición solicitada";
        }
    }
   
    public int getTamaño(){//metodo para obtener el tamaño de la lista
        return nombresCantantes.size();
    }
   
    public void removeNombreLista(int posicion){//metodo para borrar un nombre de la lista
        if (posicion>=0 && posicion<nombresCantantes.size()){
            nombresCantantes.remove(posicion);
        }else{} //no exite nombre para la posicion solicitada. No se ejecuta ninguna instruccion
    }
}

La clase que contiene el main, TextListaCantantes:

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

public class TextListaCantantes
{
    public static void main (String[]args){
        int x;
        System.out.println("¿Cuantos nombres vas a introducir?");
        Scanner sc=new Scanner(System.in);// se crea un objeto de tipo Scanner
        x=sc.nextInt();//nextInt(): metodo para leer un entero con la clase Scanner. Se lee el entero de cuantos nombres se van a introducir
        sc.nextLine();//limpiar bufer de entrada. SIEMPRE acontinuación de leer datos numericos y despues se tenga que leer datos de tipo caracter.

        ListaCantantesFamosos lista=new ListaCantantesFamosos("Cantantes");// se crea un objeto de tipo Array(String)(ListaCantantesFamosos)
        for(int i=0;i<x;i++){
            System.out.println("Por favor, introduzca nombre de cantante");
            EntradaDeTeclado entrada=new EntradaDeTeclado(); //Se crea un objeto tipo EntradaTeclado. Se utiliza la clase EntradaDeTeclado.
            lista.addNombre(entrada.getEntrada());//addNombre():metodo de la clase ListaCantantesFamosos para añadir un nombre a la lista
        }

        System.out.println("La lista ha quedado formada por:");
        for(int i=0;i<lista.getTamaño();i++){
            System.out.println(lista.getNombre(i));
        }
    }
}

Y la clase que ya utilizamos en otro ejercicio, EntradaDeTeclado:

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

public class EntradaDeTeclado
{
    private String entradaTeclado; //variable de instancia(campo) de la clase
   
    public EntradaDeTeclado(){ //constructor
        entradaTeclado=""; //inicializamos la instancia de la clase
        pedirEntrada(); // Esto es una llamada a un método interno. Al crear un objeto automaticamente, ejecutamos el metodo
    }
   
    public void pedirEntrada(){ //metodo de la clase
        Scanner entradaEscaner=new Scanner(System.in);
        entradaTeclado=entradaEscaner.nextLine();
    }
   
    public String getEntrada(){
        return entradaTeclado;
    }
   
    //en esta prueba no se utilizan estos metodos
    public String getPrimeraPalabra(){
       
        for(int i=0;i<entradaTeclado.length()-1;i++){
            if(entradaTeclado.substring(i,i+1).equals(" ")){
                return entradaTeclado.substring(0,i+1);
            }
        }
        return entradaTeclado; //en el caso de que no se detecte ningun espacio, devolvemos lo que haya
    }
   
    public int getLongitud(){
        return entradaTeclado.length();
    }
}

Un saludo.
« Última modificación: 23 de Febrero 2015, 12:29 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2662
    • Ver Perfil
Hola has realizado el ejercicio y has hecho más de lo que pedía el enunciado, ya que el enunciado sólo pedía añadir dos cantantes más mientras que tú das opción a que el usuario elija el número de cantantes, así que perfecto y adelante.

Comentar que aAunque pueden usarse eñes en general se recomienda no usarlas porque a la larga pueden dar problemas, por ello te diría que mejor getSize que getTamaño

Salu2

el_calderas

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 43
    • Ver Perfil
Gracias por el consejo. La verdad es que por falta de constumbre, mezclo español e ingles en las declaraciones y a veces es un lio.
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".