Autor Tema: Java. Tipo Iterator y método iterator implementado en BlueJ CU00667B  (Leído 2104 veces)

HumbertoAli

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 21
    • Ver Perfil
Quisiera saber si el ejercicio CU00667B del tutorial de programación Java con BlueJ esta bien, de antemano gracias

Código: [Seleccionar]
public class CantanteFamoso {
    private String nombre;
    private String discoConMasVentas;
    public CantanteFamoso(){
        nombre = "";
        discoConMasVentas = "";
    }
    public CantanteFamoso(String nombre,String discoConMasVentas){
        this.nombre = nombre;
        this.discoConMasVentas = discoConMasVentas;
    }
   
    public void setNombre(String n){
        this.nombre = n;
    }
    public void setDiscoConMasVentas(String dc){
        this.discoConMasVentas = dc;
    }
    public String getNombre(){
        return nombre;
    }
    public String getDiscoConMasVentas(){
        return discoConMasVentas;
    }
}

Código: [Seleccionar]
import java.util.ArrayList;
import java.util.Scanner;
import java.util.Iterator;/**
 *
 * @author baseuser
 */
public class ListaCantantesFamosos2 {
    private ArrayList<CantanteFamoso> listaCantantesFamosos = new ArrayList<CantanteFamoso>();
    private String nombreLista;
   
    public ListaCantantesFamosos2(){
        nombreLista = "------- CANTANTES FAMOSOS -------";
        listaCantantesFamosos = new ArrayList<CantanteFamoso>();
        listaCantantesFamosos.add(new CantanteFamoso("Michael Jackson", "Thriller"));
        listaCantantesFamosos.add(new CantanteFamoso("Madonna", "All I want is you"));
    }
   
    public void aggCantante(){
        CantanteFamoso cf = new CantanteFamoso();
        Scanner sc = new Scanner(System.in);
        System.out.println("Por Favor Introduzca el nombre del Cantante: ");
        String Cantante = sc.nextLine();
        cf.setNombre(Cantante);
        System.out.println("Por Favor Introduzca su Disco Mas Famoso: ");
        String cd = sc.nextLine();
        cf.setDiscoConMasVentas(cd);
        listaCantantesFamosos.add(new CantanteFamoso(cf.getNombre(),cf.getDiscoConMasVentas()));
    }
    public void imprimirLista(){
        System.out.println("La lista "+nombreLista+" contiene los siguientes datos: ");
        Iterator <CantanteFamoso> it = listaCantantesFamosos.iterator();
        CantanteFamoso tmpCantante;
        while(it.hasNext()){
            tmpCantante = it.next();
            System.out.println("Cantante: "+tmpCantante.getNombre()+".      Disco Mas vendido: "+tmpCantante.getDiscoConMasVentas());
        }
    }
    public int getTamaño() {
        return listaCantantesFamosos.size();
    }
    public String getNombreLista(){
        return nombreLista;
    }
           
}

por ultimo el main
Código: [Seleccionar]
import java.util.Scanner;/**
 *
 * @author baseuser
 */
public class TestEjercicioIterator {
    public static void main(String[]args){
    Scanner sc = new Scanner(System.in);
    ListaCantantesFamosos2 lcf = new ListaCantantesFamosos2();
   
    lcf.imprimirLista();
    String op = "s" ;
    String nombre, disco;
    while(op.equalsIgnoreCase("s") ){
        System.out.println("Por favor introduzca los datos de otro cantante.");
        lcf.aggCantante();
        System.out.println("Actualizando Lista.........");
        lcf.imprimirLista();
        System.out.println("¿Desea introducir los datos de otro cantante (s:si/n)no)?");
        op = sc.nextLine();
        }
        System.out.println("Finalizando programa......");
    }
}
« Última modificación: 31 de Mayo 2017, 19:27 por Ogramar »

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Re:Curso de java (CU00667B).
« Respuesta #1 en: 14 de Marzo 2017, 20:14 »
Buenas HumbertoAli.

Sobre la clase ListaCantantesFamosos2 que creaste, decirte que lo ideal sería que fuese igual que la que creaste en el ejercicio anterior a excepción de que en el método imprimirLista() en este ejercicio se pedía hacerlo con un iterator como  has hecho.

El método aggCantante() lo deberías usar nada más que para introducir elementos en la lista, y no que se tenga que encargar de pedir los datos por consola también, esta parte debería ir en la clase test o en un método aparte que se encargue de ello.

Por lo demás todo bien.

Saludos. ;D

 

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