Autor Tema: Cómo crear un iterador de clase para colección Tipo iterator Java API CU00667B  (Leído 2207 veces)

santicam

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 1
    • Ver Perfil
Hola, os dejo mi planteamiento a la solución del ejercicio CU00667B del tutorial pdf de programación básica Java de aprenderaprogramar.

Cualquier observación será bienvenida.

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

public class GestionTeclado{
    private String texto;
    private int numero;

    public GestionTeclado(){
        texto="";
        numero=0;
    }

    public String pedirTexto(){         
        Scanner entradaEscaner = new Scanner (System.in);
        texto = entradaEscaner.nextLine();
        return texto;
    }
   
    public int pedirNumero(){         
        Scanner entradaEscaner = new Scanner (System.in);
        numero = entradaEscaner.nextInt();
        return numero;
    }

    public String gettexto(){
        return texto;
    }
   
    public int getNumero(){
        return numero;
    }
   
    public int getLongtexto(){
        return texto.length();
    }
}

Clase CantanteFamoso
Código: [Seleccionar]
public class CantanteFamoso {
    private String nombre; //Nombre del cantante famoso
    private String disco;  //Título del disco más vendido
   
    public CantanteFamoso(){
        nombre="";
        disco="";
    }
   
    public CantanteFamoso(String nombre, String disco){
        this.nombre=nombre;
        this.disco=disco;
    }

    public void setNombreCantante(String nombre){
        this.nombre=nombre;
    }
   
    public void setDisco(String disco){
        this.disco=disco;
    }
   
    public String getNombreCantante() {
        return nombre;
    }
   
    public String getDisco(){
        return disco;
    }
}

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

public class ListaCantantesFamosos {
    private ArrayList<CantanteFamoso> listaCantantesFamosos;

    public ListaCantantesFamosos() {
        listaCantantesFamosos = new ArrayList<CantanteFamoso>();
    }

    public void addCantanteFamoso(CantanteFamoso nuevoCantanteFamoso) {
        listaCantantesFamosos.add(nuevoCantanteFamoso);
    }
   
    public void listarTodos() {
        Iterator<CantanteFamoso> itCantante = listaCantantesFamosos.iterator();
        String nombre;
        String disco;
        CantanteFamoso tempCantanteFamoso = new CantanteFamoso();
        while (itCantante.hasNext()){
            tempCantanteFamoso=itCantante.next();
            nombre=tempCantanteFamoso.getNombreCantante();
            disco=tempCantanteFamoso.getDisco();
            System.out.println ("Cantante: "+nombre+" / Disco: "+disco);
        }
    }
}

Clase TestListaCantantesFamosos
Código: [Seleccionar]
public class TestListaCantantesFamosos {
    public static void main (String [ ] args) {
        ListaCantantesFamosos lista = new ListaCantantesFamosos();
       
        // Inicializar lista con un par de objetos
        lista.addCantanteFamoso(new CantanteFamoso("Madonna", "All I want is you"));
        lista.addCantanteFamoso(new CantanteFamoso("Jorge Negrete", "Jalisco"));
       
        GestionTeclado entrada = new GestionTeclado();
        int menu = 0;
        while (menu != 3){
            System.out.println ("\n1 - Listar todos los cantantes");
            System.out.println ("2 - Añadir un cantante a la lista");
            System.out.println ("3 - Finalizar");
            System.out.println ("=================================");
            System.out.println ("Teclea opción");
            menu=entrada.pedirNumero();
            switch (menu){
                case 1:
                    lista.listarTodos();
                    break;
                case 2:
                    String nombre;
                    String disco;
                    System.out.println ("Teclea nombre del cantante");
                    nombre = entrada.pedirTexto();
                    System.out.println ("Teclea nombre del disco más vendido");
                    disco = entrada.pedirTexto();
                    lista.addCantanteFamoso(new CantanteFamoso(nombre, disco));
                    break;
                case 3:
                    System.out.println ("Finalizado por el usuario");
                    break;
                default:
                    System.out.println ("ERROR: opción elegida no válida");
            }
       }
    }
}

¡Gracias!
« Última modificación: 17 de Junio 2018, 17:30 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2659
    • Ver Perfil
Buenas, todo correcto, buen código. Por comentar algo, en lugar de gettexto preferible getTexto. En cuanto a nombre de la clase, GestionTeclado no es demasiado adecuado porque suena muy bien decir "he creado un objeto gestión de teclado". Preferible GestorTeclado para poder decir "he creado un objeto gestor de teclado". La forma de nombrar clases en Java se comenta en https://aprenderaprogramar.com/foros/index.php?topic=3035.msg13698#msg13698

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