Autor Tema: ArrayList Java ejemplo ejercicio resuelto pidiendo datos por teclado CU00665B  (Leído 4533 veces)

DRANXZ88

  • Avanzado
  • ****
  • Mensajes: 356
    • Ver Perfil
Clase para crear el teclado
Código: [Seleccionar]
package ejercicioscu00665b;

import java.util.Scanner;

public class EntradaDeTeclado {

    private String entradaTeclado;
    Scanner sc = new Scanner(System.in);

    public EntradaDeTeclado() {
        entradaTeclado = "";
    }

    public String buscarCantante() {
        entradaTeclado = sc.nextLine();
        return entradaTeclado;
    }
    public String getEntrada() {
        return entradaTeclado;
    }

}

Clase para agregar nuevo cantente
Código: [Seleccionar]
package ejercicioscu00665b;

import java.util.ArrayList;

public class ListaCantantesFamosos {

    private ArrayList<String> cantantes;
    private String nombreCantante;

    public ListaCantantesFamosos(ArrayList<String> cantantes, String nombreCantante) {
        this.cantantes = cantantes;
        this.nombreCantante = nombreCantante;
    }

    public ListaCantantesFamosos() {
        this.cantantes = new ArrayList<String>();
        cantantes.add("Marcos Antonio");
        cantantes.add("Enrique Iglesia");
        cantantes.add("Juanes ");
    }

    public void addNombre(String valor_nombre) {
        cantantes.add(valor_nombre);
    }

    public void listarCantantesFamosos() {
        for (int i = 0; i < cantantes.size(); i++) {
            System.out.println("Cantante Famoso " + (i + 1) + " : " + cantantes.get(i));
        }
    }

}
Clase principal main
Código: [Seleccionar]
package ejercicioscu00665b;

public class EjerciciosCu00665B {

    public static void main(String[] args) {
        ListaCantantesFamosos listaCantantes1 = new ListaCantantesFamosos();
        EntradaDeTeclado entrada1 = new EntradaDeTeclado();
        EntradaDeTeclado entrada2 = new EntradaDeTeclado();
        System.out.println("Por favor introduzca nombre de un Cantante :");
        entrada1.buscarCantante();
        listaCantantes1.addNombre(entrada1.getEntrada());
       
        System.out.println("Por favor introduzca nombre de un Cantante :");
        entrada2.buscarCantante();
        listaCantantes1.addNombre(entrada2.getEntrada());
       
       
        listaCantantes1.listarCantantesFamosos();
    }

}
« Última modificación: 04 de Junio 2015, 23:36 por Alex Rodríguez »

Lorenzo31

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 381
    • Ver Perfil
Re:Ejercicios Cu00665B de java
« Respuesta #1 en: 03 de Junio 2015, 11:49 »
Buenas Ramon, la clase EntradaDeTeclado, la veo bien, quizá yo el String entradaTeclado, lo cambiaria por otro nombre que no coincida tanto con la clase, nuevaEntrada o algo así. Pero OK. Y la función buscarCantante() si crea un cantante, seria mejor crearCantante o añadirCantante, porque buscar al leer el codigo induciria a error, sobre lo que realmente hace, que es recojer por teclado un nombre.

Clase para agregar nuevo cantante al ArrayList esta bien todo, el constructor que le pasa una lista, no lo usas para nada, pero esta bien, lo que no le veo logica (si lo pide el ejercicio no he dicho nada) que le pasas el array de nombres, y un nombre a parte,

Código: [Seleccionar]
public ListaCantantesFamosos(ArrayList<String> cantantes, String nombreCantante) {
        this.cantantes = cantantes;
        this.nombreCantante = nombreCantante;
    }

En ese caso con pasarlo todo en el arrayList cantantes, ya estaria.

La clase principal bien, esta bien todo solo son detalles. Si quieres por comentarte algo de esta, creas dos nuevos objetos de entrada de datos, cuando quizás con uno solo bastaria, una vez has recogido el nombre del primer cantante puedes volver a llamar al mismo objeto entrada1 para recoger el segundo cantante. ;) sigue así.

DRANXZ88

  • Avanzado
  • ****
  • Mensajes: 356
    • Ver Perfil
Re:Ejercicios Cu00665B de java
« Respuesta #2 en: 03 de Junio 2015, 15:56 »
Si ya entiendo a que te referí voy a corregir gracia por tu comentario y consejo así voy a mejorar día a día.

DRANXZ88

  • Avanzado
  • ****
  • Mensajes: 356
    • Ver Perfil
Re:Ejercicios Cu00665B de java
« Respuesta #3 en: 03 de Junio 2015, 16:24 »
Ya hice los cambio que me sugeriste
Clase para crear el teclado
Código: [Seleccionar]
package ejercicioscu00665b;

import java.util.Scanner;

public class EntradaDeTeclado {

    private String entradaTeclado;
    Scanner sc = new Scanner(System.in);

    public EntradaDeTeclado() {
        entradaTeclado = "";
    }

    public String AgregarCantante() {
        entradaTeclado = sc.nextLine();
        return entradaTeclado;
    }
    public String getEntrada() {
        return entradaTeclado;
    }

}
Clase crear y listar cantante
Código: [Seleccionar]
package ejercicioscu00665b;

import java.util.ArrayList;

public class ListaCantantesFamosos {

    private ArrayList<String> listaDeCantantes;

   

    public ListaCantantesFamosos() {
        this.listaDeCantantes = new ArrayList<String>();
        listaDeCantantes.add("Marcos Antonio");
        listaDeCantantes.add("Enrique Iglesia");
        listaDeCantantes.add("Juanes ");
    }

    public void addNombre(String valor_nombre) {
        listaDeCantantes.add(valor_nombre);
    }

    public void listarCantantesFamosos() {
        for (int i = 0; i < listaDeCantantes.size(); i++) {
            System.out.println("Cantante Famoso " + (i + 1) + " : " + listaDeCantantes.get(i));
        }
    }

}
Clase principal main
Código: [Seleccionar]
package ejercicioscu00665b;

public class EjerciciosCu00665B {

    public static void main(String[] args) {
        ListaCantantesFamosos listaCantantes1 = new ListaCantantesFamosos();
        EntradaDeTeclado entrada1 = new EntradaDeTeclado();
        System.out.println("Por favor introduzca nombre de un Cantante :");
        entrada1.AgregarCantante();
        listaCantantes1.addNombre(entrada1.getEntrada());

        System.out.println("Por favor introduzca nombre de un Cantante :");
        entrada1.AgregarCantante();
        listaCantantes1.addNombre(entrada1.getEntrada());

        listaCantantes1.listarCantantesFamosos();
    }

}

Lorenzo31

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 381
    • Ver Perfil
Ok perfecto sigue así ;)

 

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