Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Javieerg en 22 de Octubre 2015, 08:49

Título: Ejemplo ejercicio For extendido Java clase con ArrayList CU00666B
Publicado por: Javieerg en 22 de Octubre 2015, 08:49
Este es mi código para el ejercicio CU00666B del curso. Batallé bastante, quisiera lo revisaran y me aconsejaran un poco, gracias.

Clase con arraylist:

Código: [Seleccionar]
import java.util.ArrayList;
import java.util.Scanner;
public class ListaCantantesFamosos2{
   
    private String nombre;
    private ArrayList<String> listaCantantes;
   
    //ArrayList
    public ListaCantantesFamosos2(){//ArrayList;
       
        listaCantantes = new ArrayList<String>();
        listaCantantes.add("Jose Jose");
        listaCantantes.add("Luis Miguel");
        listaCantantes.add("Enrique Iglesias");
    }
   
    //Teclado
    public void Teclado(){
   
        Scanner escaner = new Scanner(System.in);
        nombre = escaner.nextLine();
    }
   
    //Agregar
    public void addName(String valorName){
   
        listaCantantes.add(valorName);
    }
   
    //Mostrar
    public String getName(){return nombre;}
   
    //Listar
    public void crearLista(){
       
        int i = 0;
        for(String nombre: listaCantantes){
            System.out.println("Cantante: " +nombre);i++;
        }
    }
}
   


Clase main

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

public class TestForExtendido2{

    public static void main(String []args){

        System.out.println("Comenzando lista de cantantes");
        //Inicializando objeto
        ListaCantantesFamosos2 Cantantes = new ListaCantantesFamosos2();
        Cantantes.crearLista();
        System.out.println("Agregue otro cantante por favor");
        Cantantes.Teclado();
        Cantantes.addName(Cantantes.getName());
        System.out.println("Se ha añadido otro cantante a la lista");
        Cantantes.crearLista();
        String respuesta = "";
        Scanner escaner = new Scanner(System.in);
        do {
            System.out.println("Desea añadir otro cantante? S/N");
            respuesta = escaner.nextLine();
            if (respuesta.substring(0,1).equalsIgnoreCase("s")){
                System.out.println("Añade cantante:");
                Cantantes.Teclado();
                Cantantes.addName(Cantantes.getName());
                Cantantes.crearLista();
            } else if (respuesta.substring(0,1).equalsIgnoreCase("n")){
            System.out.println("Gracias");
            } else {
                System.out.println("Respuesta invalida");
               
            }
        } while (!respuesta.substring(0,1).equalsIgnoreCase("s"));
        System.out.println("Fin del programa");
    }
}
Título: Re:CU00666B For extendido.
Publicado por: pedro,, en 23 de Octubre 2015, 23:03
Hola Javieerg.

En la clase listaCantantesFamosos2, decirte que tendrías que cambiar algunas cosas, para empezar habría que quitar el método Teclado, ya creas un objeto Scanner en la clase del main, no es necesarios que crees otro en esta clase.

El método crearLista() se debería llamar mostrarLista() o algo parecido, porque es de lo que se encarga, de enseñar el contenido del ArrayList que hemos creado en el constructor de la clase, también en ese método usas i = 0, cosa que no usas posteriormente para nada.

En la clase Test
Según tienes la clase test ahora, después de añadir un cantante nuevo, cuando te pregunta "Desea añadir otro cantante? S/N", si respondemos que no, no hace caso y sigue preguntando lo mismo.

He realizado algunos cambios en tu código quedando así:

Clase ListaCantantesFamosos2()
Código: [Seleccionar]
import java.util.ArrayList;
public class ListaCantantesFamosos2{
    private ArrayList<String> listaCantantes;   
    //ArrayList
    public ListaCantantesFamosos2(){//ArrayList;
        listaCantantes = new ArrayList<String>();
        listaCantantes.add("Jose Jose");
        listaCantantes.add("Luis Miguel");
        listaCantantes.add("Enrique Iglesias");
    }   
    //Agregar
    public void addName(String valorName){
        listaCantantes.add(valorName);
    }
    public void mostrarLista(){
        for(String nombreCantante: listaCantantes){
            System.out.println("Cantante: " +nombreCantante);
        }
    }
}

y la clase Test
Código: [Seleccionar]
import java.util.Scanner;
public class TestForExtendido2{
    public static void main(String []args){
        System.out.println("Comenzando lista de cantantes");
        ListaCantantesFamosos2 nuevoCantante = new ListaCantantesFamosos2();
        nuevoCantante.mostrarLista();
        String respuesta = "";
        Scanner escaner = new Scanner(System.in);
        do {
            System.out.println("Agregue otro cantante por favor");
            nuevoCantante.addName(escaner.nextLine());
            System.out.println("Se ha añadido otro cantante a la lista");
            nuevoCantante.mostrarLista();
            System.out.println("Desea añadir otro cantante? S/N");
            respuesta = escaner.nextLine();
            while(!respuesta.equalsIgnoreCase("s") && !respuesta.equalsIgnoreCase("n")){
                System.out.println("Respuesta invalida");
                System.out.println("Desea añadir otro cantante? S/N");
                respuesta = escaner.nextLine();
            }
        } while (respuesta.equalsIgnoreCase("s"));
        System.out.println("Fin del programa");
    }
}

Espero que te sirva de ayuda.

Saludos.

Título: Re:Ejemplo ejercicio For extendido Java clase con ArrayList CU00666B
Publicado por: CarlosAndres21 en 03 de Diciembre 2015, 22:50
Buenos Dias.
Este codigo no lo he hecho pero estaba intentando resolver el ejercicio y la verdad no se me ocurrio usar el metodo .EqualsIgnoreCase().
Quisiera saber como funciona este metodo.