Autor Tema: Java ejemplo básico manejo de listas, añadir elementos, acceder, etc. CU00666B  (Leído 4403 veces)

barriway

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 20
    • Ver Perfil
Buenos días aquí dejo una posible solución al ejercicio CU00666B:

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

public class EntradaTeclado{

    private String entrada;
    Scanner scaner;
   
    public EntradaTeclado(){
        scaner = new Scanner(System.in);
        entrada = scaner.nextLine();
    }

    public String getEntrada(){
        return entrada;
    }

    public void setEntrada(){
        entrada = scaner.nextLine();
    }
}


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

public class ListaCantantesFamosos{

    private ArrayList<String> listaCantantes;

    public ListaCantantesFamosos(){
        listaCantantes = new ArrayList<String>();
        listaCantantes.add("Joaquin Sabina");
        listaCantantes.add("Carlos Cano");
        listaCantantes.add("David Broza");
    }

    public ArrayList<String> getLista(){
        return listaCantantes;
    }
   
    public String getCantante(int posicion){
        if(posicion>=0 && posicion<listaCantantes.size()){
            return listaCantantes.get(posicion);
        }else{
            return "No existe cantante para esa posición de la lista";
        }
    }

    public void addCantante(String nombreCantante){
        listaCantantes.add(nombreCantante);
    }

    public void removeCantante(int posicion){
        if(posicion>=0 && posicion<listaCantantes.size()){
            listaCantantes.remove(posicion);
        }
    }

    public int getTamaño(){
        return listaCantantes.size();
    }
}


Código: [Seleccionar]
public class TestForExtendido{

    public static void main(String Arg[]){

        ListaCantantesFamosos listaCantantes=new ListaCantantesFamosos();
        EntradaTeclado entradaTeclado;
       
        do{
            System.out.print("Dame el nombre de un cantante famoso : ");
            entradaTeclado = new EntradaTeclado();
            listaCantantes.addCantante(entradaTeclado.getEntrada());

            int numeroCantante=1;
            for(String cantante : listaCantantes.getLista()){
                System.out.println("El cantante numero "+ numeroCantante+" es : "+cantante);
                numeroCantante++;
            }

            System.out.print("¿Quieres continuar?(S/N)");
            entradaTeclado.setEntrada();
        }while(entradaTeclado.getEntrada().equals("S"));
    }
}

Un saludo
« Última modificación: 16 de Julio 2015, 10:59 por Alex Rodríguez »

RaGa

  • Moderador Global
  • Intermedio
  • *******
  • APR2.COM
  • Mensajes: 234
    • Ver Perfil
Re:Java. El for extendido o bucles for each en Java. Ejercicio CU00666B
« Respuesta #1 en: 10 de Julio 2015, 16:39 »
Hola:

Estuve revisando tu ejercicio y lo veo bien.
Recuerda las correcciones que marcamos en el ejercicio

https://www.aprenderaprogramar.com/foros/index.php?topic=2880.0

acerca de la clase EntradTeclado, y sobre el uso de la letra 'ñ' en programación.

Más allá de eso, me gustaría analizar lo siguiente:
Declaras y codificas un recorrido completo de la lista donde se muestran los cantantes a través de la consola, dentro del método main.
A esto no lo veo correcto. Lo más lógico sería que ese recorrido conforme un método en si, y que pertenezca a la clase ListaCantantesFamosos.
De este modo, un objeto tipo ListaCantantesFamosos tendría los siguientes métodos:

getCantante
addCantante
removeCantante
getTamaño
mostarLista

El código con esa modificación sería:

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

public class ListaCantantesFamosos{

    private ArrayList<String> listaCantantes;

    public ListaCantantesFamosos(){
        listaCantantes = new ArrayList<String>();
        listaCantantes.add("Joaquin Sabina");
        listaCantantes.add("Carlos Cano");
        listaCantantes.add("David Broza");
    }

    public ArrayList<String> getLista(){
        return listaCantantes;
    }
   
    public String getCantante(int posicion){
        if(posicion>=0 && posicion<listaCantantes.size()){
            return listaCantantes.get(posicion);
        }else{
            return "No existe cantante para esa posición de la lista";
        }
    }

    public void addCantante(String nombreCantante){
        listaCantantes.add(nombreCantante);
    }

    public void removeCantante(int posicion){
        if(posicion>=0 && posicion<listaCantantes.size()){
            listaCantantes.remove(posicion);
        }
    }

    public int getTamaño(){
        return listaCantantes.size();
    }
   
    public void mostrarLista(){
    int numeroCantante=1;
        for(String cantante : listaCantantes){
            System.out.println("El cantante numero "+ numeroCantante+" es : "+cantante);
            numeroCantante++;
        }
    }
           
}

Clase TestForExtendido
Código: [Seleccionar]
public class TestForExtendido{

    public static void main(String Arg[]){

        ListaCantantesFamosos listaCantantes=new ListaCantantesFamosos();
        EntradaTeclado entradaTeclado;
       
        do{
            System.out.print("Dame el nombre de un cantante famoso : ");
            entradaTeclado = new EntradaTeclado();
            listaCantantes.addCantante(entradaTeclado.getEntrada());

            listaCantantes.mostrarLista();

            System.out.print("¿Quieres continuar?(S/N)");
            entradaTeclado.setEntrada();
        }while(entradaTeclado.getEntrada().equals("S"));
    }
}

Analízalo y cualquier duda estamos aquí para revisarlo nuevamente.

 

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