Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: DRANXZ88 en 02 de Junio 2015, 20:11

Título: ArrayList Java ejemplo ejercicio resuelto pidiendo datos por teclado CU00665B
Publicado por: DRANXZ88 en 02 de Junio 2015, 20:11
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();
    }

}
Título: Re:Ejercicios Cu00665B de java
Publicado por: Lorenzo31 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í.
Título: Re:Ejercicios Cu00665B de java
Publicado por: DRANXZ88 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.
Título: Re:Ejercicios Cu00665B de java
Publicado por: DRANXZ88 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();
    }

}
Título: Re:ArrayList Java ejemplo ejercicio resuelto pidiendo datos por teclado CU00665B
Publicado por: Lorenzo31 en 07 de Junio 2015, 19:28
Ok perfecto sigue así ;)