Autor Tema: cannot find symbol - method getN() error java ejercicio Java Iterator CU00667B  (Leído 2585 veces)

micaelasol

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 33
    • Ver Perfil
Hola. Estuve algunos días intentando resolver el ejercicio CU00667B del tutorial de programación java poo con ejericios resueltos de aprenderaprogramar y aunque todavía no lo termino, me aparecen errores (por ejemplo cannot find symbol - method getNombre()) y no sé cómo solucionarlos. Ya he intentado de todo y estoy sin soluciones. Agradecería algunos consejos y soluciones.

Citar
Crea una clase denominada ListaCantantesFamosos que disponga de un atributo ArrayList listaCantantesFamosos que contenga objetos de tipo CantanteFamoso. La clase debe tener un método que permita añadir objetos de tipo CantanteFamoso a la lista. Un objeto de tipo CantanteFamoso tendrá como atributos nombre (String) y discoConMasVentas (String), y los métodos para obtener y establecer los atributos. Crea una clase test con el método main que inicialice un objeto ListaCantantesFamosos y añade manualmente dos objetos de tipo CantanteFamoso a la la lista. Usando iterator muestra los nombres de cada cantante y su disco con más ventas por pantalla. Se debe pedir al usuario un nombre y disco con más ventas de otro cantante famoso, y una vez introducidos los datos mostrar la lista actualizada usando iterator. Una vez mostrada la lista actualizada, se debe dar opción a elegir entre volver a introducir los datos de otro cantante o salir del programa (se podrán introducir tantos datos de cantantes como se desee. Para ello usa un bucle while que dé opción a elegir al usuario). Puedes comprobar si tu código es correcto consultando en los foros aprenderaprogramar.com.

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

public class ListaCantantesFamosos11
{
    private ArrayList <String> listaCantantesFamosos;
   
    public ListaCantantesFamosos11 () {
        listaCantantesFamosos = new ArrayList <String> ();
        CantantesFamosos cantantesFamosos = new CantantesFamosos();
        ListaCantantesFamosos1 listaCantantes = new ListaCantantesFamosos1();
        listaCantantesFamosos.add("Nombre: Ariana Grande. Disco con más ventas: 7 rings \n");
        listaCantantesFamosos.add("Nombre: Ed Sheeran. Disco con más ventas: =.");
    }   
   
    public void addNombre(String nombre){
        listaCantantesFamosos.add(nombre);
    }
   
    public ArrayList <String> getListaCantantesFamosos(){//Método para extraer un objeto de cierta posición
        return listaCantantesFamosos;
    }
   
    public String getEntrada(){}
   
    public void mostrarPorPantallaLista(){
        System.out.println (listaCantantesFamosos + "Nombre: " + getEntrada() + ". Disco con más ventas: " + getEntrada() + ".");
    }
   
    public void iterator(){}
}

Código: [Seleccionar]
public class CantantesFamosos
{
    private String nombre;
    private String discoConMasVentas;
   
    public void setNombre (String valorNombre){
        nombre = valorNombre;
    }
   
    public void setDiscoConMasVentas (String valorDiscoConMasVentas){
        discoConMasVentas = valorDiscoConMasVentas;
    }
   
    public String getNombre () {return nombre;}
   
    public String getDiscoConMasVentas () {return discoConMasVentas;}
   
}

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

public class TestListaCantantesFamosos11
{
   
    public static void main (String [] args){
        Scanner entradaEscaner = new Scanner (System.in);
       
        ListaCantantesFamosos11 listaCantantesFamosos = new ListaCantantesFamosos11();
       
        System.out.println("");
       
        System.out.println ("Aquí va la lista con los cantantes hasta el momento: ");
        listaCantantesFamosos.mostrarPorPantallaLista();
       
        System.out.println("");
        System.out.println("Ingrese un cantante famoso: ");
        String entrada1 = entradaEscaner.nextLine();
        System.out.println("Ahora el disco con más venta de ese cantante: ");
        String entrada2 = entradaEscaner.nextLine();
        listaCantantesFamosos.addNombre(entrada1.getNombre());
        listaCantantesFamosos.addNombre(entrada2.getDiscoConMasVentas());
       
        System.out.println("Aquí va la lista actualizada: ");
        listaCantantesFamosos.mostrarPorPantallaLista();
       
        Iterator <String> iteradorCantantes = listaCantantesFamosos.getListaCantantesFamosos().iterator();
       
        while (!"No".equals(entrada1)){
            System.out.println("¿Quiere agregar un nuevo cantante?"); //Te pregunta si quieres agregar un nuevo cantante
            entrada1 = entradaEscaner.nextLine(); //entra la resp del usuario
           
            if (entrada1.equals("Si")){//si la respuesta es si:
                System.out.println ("Ingrese el nombre del cantante famoso: "); //te pide el nombre del cantante
                entrada1 = entradaEscaner.nextLine();//entra el nombre
                System.out.println ("Ingrese el disco con más ventas de ese cantante: ");
                entrada2 = entradaEscaner.nextLine();
                listaCantantesFamosos.addNombre(entrada1);//y lo añade a la lista de cantantes
                listaCantantesFamosos.addNombre (entrada2);
                listaCantantesFamosos.mostrarPorPantallaLista(); //y muestra de nuevo la lista de cantantes actualizada
            }else {entrada1 = "No";} // si la respuesta era no
        } //termina todo
        System.out.println ("Ha finalizado el programa"); //y muestra en la pantalla que el programa ha finalizado
       
    }
}

PD: cy¿ualquier comentario en los códigos son anotaciones mías, no son nada especial.
« Última modificación: 19 de Agosto 2022, 19:17 por Alex Rodríguez »

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 989
    • Ver Perfil
Re: Tipo Iterator api Java.(CU00667B)
« Respuesta #1 en: 22 de Febrero 2022, 11:58 »
Vamos por partes.

Tu clase CantantesFamosos es correcta como está, aunque yo le añadiría un constructor donde se reciban los valores para los atributos.
Y ya puestos, un segundo constructor donde se pueda inicializar el objeto con unos valores "por defecto".

Código: [Seleccionar]
public class CantantesFamosos
{
    private String nombre;
    private String discoConMasVentas;
   
    //Constructor que recibe valores
    public CantantesFamosos(String valorNombre, String valorDiscoConMasVentas) {
nombre = valorNombre;
discoConMasVentas = valorDiscoConMasVentas;
}
    //Constructor con valores "por defecto"
    public CantantesFamosos() {
nombre = "";
discoConMasVentas = "";
}

public void setNombre (String valorNombre){
        nombre = valorNombre;
    }
   
    public void setDiscoConMasVentas (String valorDiscoConMasVentas){
        discoConMasVentas = valorDiscoConMasVentas;
    }
   
    public String getNombre () {return nombre;}
   
    public String getDiscoConMasVentas () {return discoConMasVentas;}
   
}

En cambio la clase ListaCantantesFamosos11, sí que hay que corregir cosas.

Su atributo ArrayList, no es para tipo String
Citar
public class ListaCantantesFamosos11
{
    private ArrayList <String> listaCantantesFamosos;

Será para el tipo CantantesFamosos, ya que eso es lo que queremos almacenar

Citar
public class ListaCantantesFamosos11
{
    private ArrayList <CantantesFamosos> listaCantantesFamosos;

Su constructor, tan solo debe inicializar el ArrayList. Nada más.
Tú además has inicializado un objeto CantantesFamosos y un objeto ListaCantantesFamosos11 (mal escrito por cierto porque has puesto que termina en 1 y no en 11)
Esos objetos son innecesarios y no aportan nada al programa.

También has hecho que en el constructor se añadan dos cantantes a la lista. El enunciado dice que estos dos cantantes se añadan en la clase Test, pero bueno, si quieres también podemos hacerlo aquí en el constructor.

Código: [Seleccionar]
    public ListaCantantesFamosos11 () {
        listaCantantesFamosos = new ArrayList <CantantesFamosos>();
        //Añadimos dos objetos CantantesFamosos al ArrayList
        listaCantantesFamosos.add(new CantantesFamosos("Ariana Grande", "7 Rings"));
        listaCantantesFamosos.add(new CantantesFamosos("Ed Sheeran", "="));
    }

Fíjate que para añadir esos dos objetos, utilizo el constructor de CantantesFamosos que recibe valores para los atributos, ya que es lo más cómodo.

Bien, ¿qué métodos vamos a necesitar para esta clase?
Para empezar, uno que permita añadir más objetos al ArrayList
Código: [Seleccionar]
    public void addCantante(CantantesFamosos cantante) {
    listaCantantesFamosos.add(cantante);
    }

Luego, la lista de cantantes ha de ser recorrida con un Iterator. Entonces, aquí tenemos dos opciones.
Una, es usar un método que retorne el iterador para que desde otra clase distinta, pueda recogerse y recorrer la lista desde ahí. Es recomendable (no obligatorio) especificar de que clase son los objetos que contiene el Iterator que se está retornando:
Código: [Seleccionar]
    public Iterator<CantantesFamosos>  getIterador() {
    return listaCantantesFamosos.iterator();
    }

La otra opción, es usar el Iterator de forma interna, sin retornar nada. O sea, hacemos un método que se encargue el mismo de recorrer y mostrar la lista.
Podemos también añadir una comprobación extra, si se diera el caso de que la lista esta vacía que muestre un mensaje informando.
En caso contrario, pues entonces sí creamos un Iterator y recorremos los objetos de la lista.
Código: [Seleccionar]
    public void mostrarListaCantantes() {
    System.out.println("\n\t\tLISTA CANTANTES FAMOSOS\n");
   
    if (listaCantantesFamosos.isEmpty())
    System.out.println("La lista de cantantes esta vacía...");
    else {
    //Creamos iterador
    Iterator<CantantesFamosos> it = listaCantantesFamosos.iterator();
    while (it.hasNext()) {
    //Obtenemos el siguiente objeto del iterador
    CantantesFamosos cantante = it.next();
    //Mostramos sus valores
    System.out.println("Nombre: " + cantante.getNombre() + " -- Disco Top Ventas: " + cantante.getDiscoConMasVentas());
    }
    }
    }

Y ya está, no se necesita nada más para esta clase. Podemos dejar escrita en ella las dos posibilidades para el Iterator, para que sirva de ejemplo.
Código: [Seleccionar]
import java.util.ArrayList;
import java.util.Iterator;

public class ListaCantantesFamosos11
{
    private ArrayList <CantantesFamosos> listaCantantesFamosos;
   
    public ListaCantantesFamosos11 () {
        listaCantantesFamosos = new ArrayList <CantantesFamosos>();
        //Añadimos dos objetos CantantesFamosos al ArrayList
        listaCantantesFamosos.add(new CantantesFamosos("Ariana Grande", "7 Rings"));
        listaCantantesFamosos.add(new CantantesFamosos("Ed Sheeran", "="));
    }   
   
    public void addCantante(CantantesFamosos cantante) {
    listaCantantesFamosos.add(cantante);
    }
   
    //Retorna un Iterator para que la lista puede recorrerse de forma EXTERNA desde otra clase
    public Iterator<CantantesFamosos> getIterador() {
    return listaCantantesFamosos.iterator();
    }
   
    //Usa un Iterator para recorrer la lista de forma INTERNA
    public void mostrarListaCantantes() {
    System.out.println("\n\t\tLISTA CANTANTES FAMOSOS\n");
   
    if (listaCantantesFamosos.isEmpty())
    System.out.println("La lista de cantantes esta vacía...");
    else {
    //Creamos iterador
    Iterator<CantantesFamosos> it = listaCantantesFamosos.iterator();
    while (it.hasNext()) {
    //Obtenemos el siguiente objeto del iterador
    CantantesFamosos cantante = it.next();
    //Mostramos sus valores
    System.out.println("Nombre: " + cantante.getNombre() + " -- Disco Top Ventas: " + cantante.getDiscoConMasVentas());
    }
    }
    }

}


Y vamos ahora con la clase Test principal.

Lo primero será crear un objeto Scanner para pedir datos y un objeto para la lista de cantantes famosos.
Como hemos hecho que su constructor añada directamente dos cantantes, una vez construido ya podemos mostrar en pantalla la lista de cantantes actual.

Y tras eso pasaríamos a preguntar al usuario si quiere añadir más cantantes o no.
Para añadir nuevos cantantes, podemos usar cualquiera de los dos constructores que le hemos puesto a la clase CantantesFamosos.
Antes, al inicializar el ArrayList, hemos usado el constructor que recibe los valores.

Ahora, para variar, podemos usar el que NO recibe valores, y por tanto, se han de usar los setters para establecer los valores del nuevo objeto creado.

Código: [Seleccionar]
public class TestListaCantantesFamosos11
{
   
    public static void main (String [] args){
        Scanner entradaEscaner = new Scanner (System.in);
       
        //El constructor de este objeto, ya añade dos cantantes automáticamente
        ListaCantantesFamosos11 listaCantantesFamosos = new ListaCantantesFamosos11();
       
        listaCantantesFamosos.mostrarListaCantantes();
       
        //A partir de aquí, el usuario decide si quiere ampliar la lista
        String respuesta = "";
       
        while (!respuesta.equals("no")) {
        System.out.print("\nAgregar otro cantante a la lista?(si/no): ");
        respuesta = entradaEscaner.nextLine();
        if (!respuesta.equals("no")) {
        //Creamos nuevo cantante
        CantantesFamosos nuevo = new CantantesFamosos();
        //Pedimos datos
        System.out.print("Nombre del Cantante: ");
        nuevo.setNombre(entradaEscaner.nextLine());
        System.out.print("Disco mas vendido: ");
        nuevo.setDiscoConMasVentas(entradaEscaner.nextLine());
        //Añadimos a la lista
        listaCantantesFamosos.addCantante(nuevo);
        //Mostramos lista actualizada
        listaCantantesFamosos.mostrarListaCantantes();
        }
        }
       
        System.out.println("\n\n\t\tFIN DE PROGRAMA");
        entradaEscaner.close();
       
    }
}

Y con esto ya estaría completo el ejercicio.

En tu clase principal, hay algunos errores conceptuales.

Por ejemplo, pedias nombre y disco más vendido para guardarlos en un String. Esto podría estar bien.
Pero luego a esos String, le intentas aplicar los getters que corresponde a la clase CantantesFamosos

Citar
        System.out.println("Ingrese un cantante famoso: ");
        String entrada1 = entradaEscaner.nextLine();
        System.out.println("Ahora el disco con más venta de ese cantante: ");
        String entrada2 = entradaEscaner.nextLine();
        listaCantantesFamosos.addNombre(entrada1.getNombre());
        listaCantantesFamosos.addNombre(entrada2.getDiscoConMasVentas());

Espero que viendo el código que he escrito, se disipen estos errores de concepto.
No dudes en preguntar cualquier cosa que no entiendas, aunque pienses que es una tontería.

Un saludo.
NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

micaelasol

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 33
    • Ver Perfil
Re: Tipo Iterator api Java.(CU00667B)
« Respuesta #2 en: 22 de Febrero 2022, 16:01 »
Agradezco muchísimo toda la explicación.
Aquí lo he podido hacer pero en la clase test me sala un error:
Código: [Seleccionar]
import java.util.Scanner;
import java.util.Iterator;

public class TestListaCantantesFamosos11
{
   
    public static void main (String [] args){
        //
        Scanner entradaEscaner = new Scanner (System.in); //creación de obj Scanner para pedir datos
        ListaCantantesFamosos11 listaCantantesFamosos = new ListaCantantesFamosos11();//creación objeto para la lista de cantantes famosos
       
        //como ya el constructor directamente añadió dos cantantes, ya se puede mostrar la lista de cantantes actual:
        System.out.println ("Aquí va la lista con los cantantes hasta el momento: ");
        listaCantantesFamosos.mostrarListaCantantes();
       
        System.out.println("");
        //añadir nuevos cantantes a la lista

        CantantesFamosos entrada = new CantantesFamosos();
        System.out.println("Ingrese un cantante famoso: ");
        entrada.setNombre(entradaEscaner.nextLine());
        System.out.println("Ahora el disco con más venta de ese cantante: ");
        entrada.setDiscoConMasVentas(entradaEscaner.nextLine());
        listaCantantesFamosos.addCantante(entrada);
       
        System.out.println("Aquí va la lista actualizada: ");
        listaCantantesFamosos.mostrarListaCantantes();
       
       
        while (!entrada.equals("no")){
            System.out.println("\nAgregar otro cantante a la lista?(si/no): ");
            entrada = entradaEscaner.nextLine();
            if (!entrada.equals("no")){
                CantantesFamosos nuevo = new CantantesFamosos();
                System.out.println("Nombre del cantante: ");
                nuevo.setNombre(entradaEscaner.nextLine());
                System.out.println("Disco más vendido: ");
                nuevo.setDiscoConMasVentas(entradaEscaner.nextLine());
                listaCantantesFamosos.addCantante(nuevo);
                listaCantantesFamosos.mostrarListaCantantes();
            }
        }
    }
   
}

En la linea 32 aparece:
Código: [Seleccionar]
            entrada = entradaEscaner.nextLine[color=red]()[/color];

Por lo que yo entiendo me dice que la clase java.lang.String no puede ser convertida en CantantesFamosos, pero no se cómo hacer.

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 989
    • Ver Perfil
Re: Tipo Iterator api Java.(CU00667B)
« Respuesta #3 en: 23 de Febrero 2022, 00:21 »
Claro.
Tu objeto llamado "entrada" es de la clase CantantesFamosos.
Aquí lo usas para crear un cantante y es correcto:
Código: [Seleccionar]
CantantesFamosos entrada = new CantantesFamosos();
        System.out.println("Ingrese un cantante famoso: ");
        entrada.setNombre(entradaEscaner.nextLine());
        System.out.println("Ahora el disco con más venta de ese cantante: ");
        entrada.setDiscoConMasVentas(entradaEscaner.nextLine());
        listaCantantesFamosos.addCantante(entrada);
Fíjate que en ese código, no estamos asignándole un String a "entrada". Le estamos asignando un objeto CantantesFamosos, cuyos atributos se componen de dos Strings, pero eso no significa que "cantante" sea un String.

Por eso luego al querer usar ese mismo objeto para pedir una cadena String al usuario, da error:
Código: [Seleccionar]
while (!entrada.equals("no")){
            System.out.println("\nAgregar otro cantante a la lista?(si/no): ");
            entrada = entradaEscaner.nextLine();
Es imposible. Son cosas distintas. Si quieres pedir una cadena String al usuario, pues tienes que declarar un objeto que sea de la clase String y que además tenga otro nombre.
Yo por ejemplo, usé el nombre "respuesta" para el objeto String
Código: [Seleccionar]
String respuesta = "";
       
        while (!respuesta.equals("no")) {
        System.out.print("\nAgregar otro cantante a la lista?(si/no): ");
        respuesta = entradaEscaner.nextLine();
Porque ahí lo queremos es que el usuario nos diga sí o no a la pregunta de continuar añadiendo cantantes, y para recibir esa respuesta, necesitamos guardarla en un String.
NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

micaelasol

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 33
    • Ver Perfil
Re: Tipo Iterator api Java.(CU00667B)
« Respuesta #4 en: 24 de Febrero 2022, 17:16 »
Aquí he terminado finalmente mi pequeño programa:
Código: [Seleccionar]
import java.util.ArrayList;
import java.util.Iterator;

public class ListaCantantesFamosos11
{
    private ArrayList <CantantesFamosos> listaCantantesFamosos;//el ArrayList no va a ser tipo String <String>, sino para tipo CantantesFamosos, ya que eso es lo que se quiere almacenar
   
    public ListaCantantesFamosos11 () {
        listaCantantesFamosos = new ArrayList <CantantesFamosos> ();//inicialización del ArrayList
    }   
   
    public void addCantante(CantantesFamosos cantante){
        listaCantantesFamosos.add(cantante);
    }
   
   
    //ITERATORES:
    //Hay dos formas:
   
    //1ra--> retorna un Iterator p/q la lista puede recorrerse de forma EXTERNA desde otra clase:
    public Iterator<CantantesFamosos> getIterador() {
        return listaCantantesFamosos.iterator();
    }
   
    //2da --> usa un Iterator p/recorrer la lista de forma INTERNA:
    public void mostrarListaCantantes() {
        System.out.println("\n\t\tLISTA DE CANTANTES FAMOSOS:\n");
       
        if (listaCantantesFamosos.isEmpty())//Opción por si la lista está vacía
            System.out.println("La lista de cantantes esta vacía...");
        else{
            //Creamos iterador
            Iterator<CantantesFamosos> it = listaCantantesFamosos.iterator();
            while (it.hasNext()) { //devuelve true si el obj no es el último de la colección
                     //Obtenemos el siguiente objeto del iterador
                CantantesFamosos cantante = it.next(); //el obj pasa a referenciar al sig elemento de la lista
                //Mostramos sus valores
                System.out.println("- Nombre: " + cantante.getNombre() + " -- Disco Top Ventas: " + cantante.getDiscoConMasVentas());
            }
        }
    }
   
}

Código: [Seleccionar]
public class CantantesFamosos
{
    private String nombre;
    private String discoConMasVentas;
   
    public CantantesFamosos (String valorNombre, String valorDiscoConMasVentas){//primer constructor para recibir los valores
        nombre = valorNombre;
        discoConMasVentas = valorDiscoConMasVentas;
    }
   
    public CantantesFamosos (){//segundo constructor con valores por defecto
        nombre = "";
        discoConMasVentas = "";
    }
   
    public void setNombre (String valorNombre){
        nombre = valorNombre;
    }
   
    public void setDiscoConMasVentas (String valorDiscoConMasVentas){
        discoConMasVentas = valorDiscoConMasVentas;
    }
   
    public String getNombre () {return nombre;}
   
    public String getDiscoConMasVentas () {return discoConMasVentas;}
   
}

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

public class TestListaCantantesFamosos11
{   
   
    public static void main (String [] args){
        //
        Scanner entradaEscaner = new Scanner (System.in); //creación de obj Scanner para pedir datos
        ListaCantantesFamosos11 listaCantantesFamosos = new ListaCantantesFamosos11();//creación objeto para la lista de cantantes famosos
        listaCantantesFamosos.addCantante(new CantantesFamosos("Ariana Grande", "7 rings"));//añadir manualmente dos objetos al atributo: añadir dos canatntes a la lista
        listaCantantesFamosos.addCantante(new CantantesFamosos("Ed Sheeran", " ="));//añadir manualmente dos objetos al atributo: añadir dos canatntes a la lista
        //para añadir esos dos objetos se utiliza el primer constructor de CantantesFamosos que recibe valores para los atributos ya que es lo más cómodo
       
        //como ya el constructor directamente añadió dos cantantes, ya se puede mostrar la lista de cantantes actual:
        System.out.println ("Aquí va la lista con los cantantes hasta el momento: ");
        listaCantantesFamosos.mostrarListaCantantes();
       
        System.out.println("");
        //añadir nuevos cantantes a la lista

        CantantesFamosos entrada = new CantantesFamosos();
        System.out.println("Ingrese un cantante famoso: ");
        entrada.setNombre(entradaEscaner.nextLine());
        System.out.println("Ahora el disco con más venta de ese cantante: ");
        entrada.setDiscoConMasVentas(entradaEscaner.nextLine());
        listaCantantesFamosos.addCantante(entrada);
       
        System.out.println("Aquí va la lista actualizada: ");
        listaCantantesFamosos.mostrarListaCantantes();
       
        String respuesta = "";
        //cambié la entrada por respuesta
        //me queda terminar de entenderlo y terminar x completo el código
        while (!"no".equals(respuesta)){
            System.out.println("\nDesea agregar otro cantante a la lista?(si/no): ");
            respuesta = entradaEscaner.nextLine();
           
            if (respuesta.equals("si")){
                CantantesFamosos nuevo = new CantantesFamosos();
                System.out.println("Nombre del cantante: ");
                nuevo.setNombre(entradaEscaner.nextLine());
                System.out.println("Disco más vendido: ");
                nuevo.setDiscoConMasVentas(entradaEscaner.nextLine());
                listaCantantesFamosos.addCantante(nuevo);
                listaCantantesFamosos.mostrarListaCantantes();
            } else {respuesta.equals("no");}
           
            System.out.println("El programa ha terminado");
        }
    }
}

Muchas gracias por toda la ayuda! ;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".