Autor Tema: CU00665B Ejemplo Clase ArrayList del api Java. Métodos add, size, etc.  (Leído 2964 veces)

Lorenzo31

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 381
    • Ver Perfil
Buenas noches, aquí va mi respuesta al ejercicio.

Comentar que hice 3 clases, una EntradaDatos otra ListaCantantesFamosos y el main GestorLista.

En el main pido numero de introducciones de cantantes, para no limitarlo a dos, controlo la excepción numerica en un metodo de EntradaDatos.
Hace todo lo que pide el ejercicio por lo demás.

Por cierto Toni, recordé tu comentario sobre que podiamos utilizar el mismo objeto Scanner tantas veces como hiciera falta, pues al recoger datos del mismo, queda de nuevo "vacio". Gracias muy útil lo que comentas como siempre.

Clase ListaCantantesFamosos

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

public class ListaCantantesFamosos{
    //Atributos clase, un nombre de la lista (podria ser POP, ROCK o General) y un array con los cantantes
    private String nombreTabla = "";
    private ArrayList<String> tablaFamosos;

    //Constructor
    public ListaCantantesFamosos(String valorNombreTabla){
        nombreTabla = valorNombreTabla;
        tablaFamosos = new ArrayList<String>();
        añadirNombre("Julio Iglesias"); añadirNombre("David Bisbal"); añadirNombre("Chenoa");
    }

    //Añadir nombre   
    public void añadirNombre(String nombre){
        tablaFamosos.add(nombre);}

    //Extraer nombres
    public String recuperarNombre(int indice){ return tablaFamosos.get(indice); }

    //Imprimir la lista tablaFamosos
    public void imprimirLista(){
        for(int x = 0;x < tablaFamosos.size(); x++){
            System.out.println("Famoso "+ nombreTabla+ " " + (x+1) + ": " + recuperarNombre(x));
        }
    }
} //cierre clase


Clase EntradaDatos

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

public class EntradaDatos {

    public EntradaDatos(){ /*vacío*/ }

    public String recogerString(){
        String nombre1;

        Scanner escaner = new Scanner(System.in);
        nombre1 = escaner.nextLine();
        return nombre1;
    } //final metodo recogerString

    public int recogerEntero(){
        int numero = 0; boolean semaforo = false;

        while(semaforo == false){ 
            semaforo = true; //pongo semaforo a true para que salga del while a no ser que entre en Excepcion
            try {
                Scanner escaner = new Scanner(System.in);
                numero = escaner.nextInt();

            } //final try
            catch (InputMismatchException ex)
            {
                System.out.println(" Has introducido un dato erroneo, introduce un número porfavor ");
                semaforo = false;
            } //final catch
        } //final while

        return numero;
    } //final método recogerEntero

} //final clase
   

Clase GestorLista

Código: [Seleccionar]
public class GestorLista{

    public static void main(String[] args){
        int cantidadAñadir;
        EntradaDatos entrada1 = new EntradaDatos(); //inicializo entrada de datos

        System.out.println("De que tipo de música quieres crear la nueva lista?");

        //Inicializamos la nueva lista de cantantes con el nombre de la clase de música indicado
        ListaCantantesFamosos lista1 = new ListaCantantesFamosos(entrada1.recogerString());

        System.out.println("Indica el número de cantantes nuevos que quieres añadir");
        cantidadAñadir = entrada1.recogerEntero();

        for(int x=0; x < cantidadAñadir; x++){
            System.out.println("Introduce el nombre de un cantante");

            lista1.añadirNombre(entrada1.recogerString() );
        } //final for

        lista1.imprimirLista();
    } //final main
} //final clase

« Última modificación: 27 de Marzo 2015, 08:26 por Alex Rodríguez »

toni_apr

  • Avanzado
  • ****
  • Mensajes: 497
  • Curiosidad, es uno de los pilares del Conocimiento
    • Ver Perfil
Re:CU00665B Clase ArrayList del api Java. Métodos add, size, etc.
« Respuesta #1 en: 26 de Marzo 2015, 23:13 »
Hola Lorenzo

Ejercicio más que correcto.

Muy bien a tus aportaciones novedosas:
Distintos métodos en la clase EntradaDatos adaptados al tipo requerido.
Y gestión de excepción ante entradas no deseadas.

Tu progreso es  destacado. Saludos y adelante.

 

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