Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: rogergcc en 06 de Mayo 2015, 01:35

Título: Ejemplo for extendido o bucles for each en Java Ejercicio resuelto CU00666B
Publicado por: rogergcc en 06 de Mayo 2015, 01:35
Citar
Crea una clase denominada ListaCantantesFamosos que al ser inicializada contenga un ArrayList con tres Strings que sean el nombre de cantantes famosos. Crea una clase test con el método main que inicialice un objeto ListaCantantesFamosos y usando un for extendido muestre los cantantes en la lista por pantalla. Se debe pedir al usuario un nombre más de cantante famoso, y una vez introducido mostrar la lista actualizada usando un for extendido. Una vez mostrada la lista actualizada, se debe dar opción a elegir entre volver a introducir otro cantante o salir del programa (se podrán introducir tantos cantantes como se desee, para ello usa un bucle while que dé opción a elegir al usuario).

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


class ListaCantantesFamosos {
    private ArrayList<String> listaDeCantantes;

    public ListaCantantesFamosos() {
        this.listaDeCantantes = new ArrayList<String>();
        listaDeCantantes.add("Mark King");
        listaDeCantantes.add("Mike Lindup");
        listaDeCantantes.add("Nathan King");
    }

    public ArrayList<String> getListaDeCantantes() {
        return listaDeCantantes;
    }
    public void añadirCantante(String nombreCantante){
        listaDeCantantes.add(nombreCantante);
    }
    public void listarCantantes(){
        int i=0;
        for (String nombre:listaDeCantantes) {
            System.out.println("Cantante "+(i+1)+": "+nombre);
            i++;
        }
    }
    public void setListaDeCantantes(ArrayList<String> listaDeCantantes) {
        this.listaDeCantantes = listaDeCantantes;
    }
}

Clase EntradaTeclado
Código: [Seleccionar]
class EntradaTeclado {
    private String entrada;

    public EntradaTeclado() {
        this.entrada = "";
        Scanner sc = new Scanner(System.in);
        this.entrada= sc.nextLine();
       
    }

    public String getEntrada() {
        return entrada;
    }

    public void setEntrada(String entrada) {
        this.entrada = entrada;
    }
   

Clase test con el metodo main
Código: [Seleccionar]
public class Test {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        ListaCantantesFamosos listaDeCantantes = new ListaCantantesFamosos();
        listaDeCantantes.listarCantantes();
        String continuar = new String();
        Scanner sc = new Scanner(System.in);
           
        do {   
           
            System.out.println("Ingrese el Nombre del Cantante. ");
            EntradaTeclado entradaTeclado = new EntradaTeclado();
            listaDeCantantes.añadirCantante(entradaTeclado.getEntrada());
            listaDeCantantes.listarCantantes();
            System.out.println("Añadir nuevo Cantante (S/N)");
            continuar=sc.nextLine();
       
        }while(continuar.equalsIgnoreCase("s"));
       
    }
   
}
(http://i.imgur.com/nZQ80YR.png)
Cualquier sugerencia y corrección es bienvenida. Gracias.
Título: Re:Ejercicio CU00666B.El for extendido o bucles for each en Java
Publicado por: Lorenzo31 en 06 de Mayo 2015, 22:27
Buenas, veo bien tu código, todo correcto, comentarte solo (por decir algo) que en la salida usas String continuar, cuando simplemente te haria falta un char, S o N es un char.
Título: Re:Ejemplo for extendido o bucles for each en Java Ejercicio resuelto CU00666B
Publicado por: Ogramar en 07 de Mayo 2015, 21:58
Hola yo también lo veo correcto. En otros hilos se comenta que si necesitamos un índice en un bucle mejor usar un for tradicional o un while, en lugar de introducirlo en un for extendido ya que este for es más propio para cuando no se necesita índice.

Respecto a si una letra es un String o un char ó un Character, la realidad es que puede ser cualquiera de estas cosas y en este caso no es relevante. Quizás podría ser interesante usar char en lugar de String si tuviéramos que manejar miles de datos o miles de objetos (para ahorrar memoria sería mejor el char cuando podamos usarlo) pero en un caso así es indiferente usar String o char.

Salu2