Autor Tema: Ejemplo for extendido o bucles for each en Java Ejercicio resuelto CU00666B  (Leído 5328 veces)

rogergcc

  • Sin experiencia
  • *
  • Mensajes: 17
    • Ver Perfil
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"));
       
    }
   
}

Cualquier sugerencia y corrección es bienvenida. Gracias.
« Última modificación: 07 de Mayo 2015, 21:51 por Alex Rodríguez »

Lorenzo31

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 381
    • Ver Perfil
Re:Ejercicio CU00666B.El for extendido o bucles for each en Java
« Respuesta #1 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.

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2662
    • Ver Perfil
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

 

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