Hola Luis el ejercicio hace lo que se pedía
[Repito] Por favor, si creas temas en el foro, ponle un título adecuado siguiendo las indicaciones que se dan en
https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0Cuando se trate de responder a un ejercicio, te recomiendo seguir lo que indica el ejercicio, por ejemplo en lugar de private String disco; usar private String discoConMasVentas; ya que es lo que indica el ejercicio. De este modo se puede valorar la corrección del ejercicio. En códigos que crees tú libremente (que también puedes subir al foro si lo deseas) es otra cosa.
Este método no lo veo correcto
public void addLista(String valor_nombre, String valor_disco) {
CantanteFamoso cantanteFamoso = new CantanteFamoso(valor_nombre, valor_disco);
listadenombres.add(cantanteFamoso);
} //Cierre del método
addLista significa añadir lista. Tú no estás añadiendo una lista, estás añadiendo un cantante, por tanto el nombre que describe lo que hace el método sería addCantante (que sigue el estándar de forma de nombrar métodos en Java); otras opciones serían addToList ó addCantanteALista pero con addCantante lo veo bien, mejor no complicar las cosas. El nombre addLista es confuso, si los nombres de clases, métodos, etc. son confusos los programas no serán de buena calidad.
En la clase con el main hay dos fragmentos casi iguales, en while(it.hasNext()) y while(it2.hasNext())
Cuando el código se repite es síntoma de un mal diseño. El código no debe repetirse, hay que evitar la "redundancia". Si necesitas hacer varias veces la misma cosa, crea un método e invócalo cada vez que lo necesites. De ese modo el código se escribe una vez, y no varias veces.
Otro detalle no adecuado, usar break para salir de un bucle en else if(respuesta.equals("n")) {break;} En general no debe usarse break para salir de un bucle, sólo cuando no puede establecerse la salida de forma natural a través de la condición del bucle.
¿Qué ocurre si borras else if(respuesta.equals("n")) {break;} else {respuesta="s";} ? Analízalo tú mismo y trata de tener claro el por qué ocurre eso
Saludos