Ejercicio CU00667B del tutorial de fundamentos de programación orientada a objetos. Creo que tiene algunos detalles no correctos, pero es que se me dificultó un poco.
public class CantanteFamoso
    {
      String nombre;
      String discoMasVendido;
      
      public CantanteFamoso(){
        nombre="desconocido";
        discoMasVendido="desconocido";
        }
        
      public void setNombre(String valorNombre){
       nombre=valorNombre; }
      public void setDiscoMasVendido(String valorDiscoMasVendido){
        discoMasVendido=valorDiscoMasVendido;}
        
      public String getNombre(){
        return nombre;}
      public String getDiscoMasVendido(){
        return discoMasVendido;}
    }
import java.util.ArrayList;
public class ListaDeCantantesFamosos
{
    private ArrayList<CantanteFamoso> listaCantantesFamosos;
    
    public ListaDeCantantesFamosos()
    {
       listaCantantesFamosos=new ArrayList<CantanteFamoso>();
    }
    
    public void agregarCantante(String nuevoNombre,String nuevoDisco){
    CantanteFamoso nuevoCantante= new CantanteFamoso(); 
    nuevoCantante.setNombre(nuevoNombre);
    nuevoCantante.setDiscoMasVendido(nuevoDisco);
    listaCantantesFamosos.add(nuevoCantante);
    }
    
    public ArrayList<CantanteFamoso>getLista(){
    return listaCantantesFamosos;}
}
import java.util.Iterator;
import java.util.Scanner;
public class TestListaCantantesFamosos
{
    public static void main (String [] args)
    {
       Scanner entradaEscaner = new Scanner (System.in);
       String respuesta="si";
       String nombreN="";
       String discoN="";
       boolean original=true;
       ListaDeCantantesFamosos lista= new ListaDeCantantesFamosos();
       lista.agregarCantante("Madonna", "All i want is you");
       lista.agregarCantante("Jorge Negrete", "Jalisco");
      
       Iterator <CantanteFamoso> it;
       CantanteFamoso cantanteActual=null;
       
      while(respuesta.equals("si")){
        it= lista.getLista().iterator(); 
        if(original==true){ System.out.println("La lista inicial es: "); original=false;}
        else{System.out.println("la lista actualizada es: ");}
            
       while (it.hasNext()== true)
       {
        cantanteActual=it.next();
        System.out.print("Cantante: " + cantanteActual.getNombre());
        System.out.println("            Disco mas vendido: " + cantanteActual.getDiscoMasVendido()); 
    }
    
    System.out.println("introduzca otro cantante");
    System.out.println("nombre");
        nombreN=entradaEscaner.nextLine();
        System.out.println("disco mas vendido");
        discoN=entradaEscaner.nextLine();
        lista.agregarCantante(nombreN, discoN);
        
        System.out.println("¿desea introducir otro cantante (s/n)?");
        respuesta=entradaEscaner.nextLine();
        
    }
}
}