Muchas gracias, sabia que era una tonteria pero es de esos errores que por mucho que lo repases no ves...
Pues aqui esta mi solución para este ejercicio.
Como siempre, agradezco sujerencias para mejorar el codigo.
Clase ListaCantantesFamosos:
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;
public class ListaCantantesFamosos
{
private ArrayList<CantanteFamoso>listaCantantesFamosos; //declaramos un ArrayList que contiene objetos tipo cantanteFamoso
private String nombre;//establecemos o declaramos un atributo nombre de la lista
public ListaCantantesFamosos(String valor_nombre){
nombre=valor_nombre;
listaCantantesFamosos=new ArrayList<CantanteFamoso>();//creamos un objeto ArrayList, listaCantantesFamosos, que contiene objetos tipo cantanteFamoso
}
public void addCantante(CantanteFamoso valor_nombre){
listaCantantesFamosos.add(valor_nombre);
}
public void listar(){
Iterator<CantanteFamoso>it=listaCantantesFamosos.iterator();//creamos la copia creando un objeto iterator
CantanteFamoso tmpCantanteFamoso=new CantanteFamoso("","");//creamos el objeto CantanteFamoso temporal para guardar el que saquemos de la lista
while(it.hasNext()){//devuelve true si el objeto no es el ultimo de la collección
tmpCantanteFamoso=it.next();//sacamos de la lista un objeto CantanteFamoso, el metodo next() ha avanzado ya al siguiente elemento...
System.out.println("Cantante: "+ tmpCantanteFamoso.getCantante());
System.out.println("Disco mas vendido: "+ tmpCantanteFamoso.getDisco());
}
}
public void introducirNuevoCantante(){
System.out.println("Por favor, introduzca otro cantante: \nNombre:");
Scanner sc=new Scanner(System.in);
String entradaNombre=sc.nextLine();
System.out.println("Disco:");
String entradaDisco=sc.nextLine();
CantanteFamoso newCantante3=new CantanteFamoso(entradaNombre,entradaDisco);
listaCantantesFamosos.add(newCantante3);
System.out.println("La lista actualizada contiene los siguientes nombres");
listar();
}
}
clase CantanteFamoso:
public class CantanteFamoso
{
private String nombre;
private String discoConMasVentas;
public CantanteFamoso(String valor_nombre, String valor_disco){
nombre=valor_nombre;
discoConMasVentas=valor_disco;
}
public void setCantante(String valor_nombre){
nombre=valor_nombre;
}
public String getCantante(){
return nombre;
}
public void setDisco(String valor_disco){
discoConMasVentas=valor_disco;
}
public String getDisco(){
return discoConMasVentas;
}
}
y clase TextListaCantantesFamosos:
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;
public class TextListaCantantesFamosos
{
public static void main(String[]arg){
ListaCantantesFamosos lista=new ListaCantantesFamosos("lista");//creamos un objeto ArrayList
CantanteFamoso newCantante1=new CantanteFamoso("Madonna","no se");//creamos un objeto tipo CantanteFamoso
CantanteFamoso newCantante2=new CantanteFamoso("BonJovi","puede ser..");//creamos un objeto tipo CantanteFamoso
lista.addCantante(newCantante1);
lista.addCantante(newCantante2);
System.out.println("La lista inicial contiene los siguientes nombres");
lista.listar();
lista.introducirNuevoCantante();
boolean aux=true;
while(aux==true){
System.out.println("¿Desea introducir otro cantante (S/N)?");
Scanner sc=new Scanner(System.in);
String decision=sc.nextLine();
if(decision.equalsIgnoreCase("S")){
lista.introducirNuevoCantante();
aux=true;
}else{
aux=false;
}
}
}
}
Un saludo.