Hola Dan, ya que llevas realizada una buena parte del curso conviene que empieces a fijarte en detalles Te señalo este:
public void RemoverCantante(int index){
if(index >= 0 && index < cantantes.size()){
cantantes.remove(index);
}
else
{System.out.println("No existe cantante en esta casilla.");}
}
Un método normalmente:
- Hace algo ó
- Devuelve algo ó
- Hace algo y devuelve algo
El trabajo de un método debe ser uniforme, no debe ocurrir que un método en algunos casos elimine un elemento de una lista y en otros muestre un mensaje por pantalla.
Mostrar mensajes por pantalla no suele ser un trabajo que deban realizar los métodos. El System.out.println normalmente debes delegarlo en el método main. Si necesitas que el método sirva para mostrar por pantalla haz que devuelva un String y después trátalo en el main.
En este caso se puede resolver así:
public void RemoverCantante(int index){
if(index >= 0 && index < cantantes.size()){
cantantes.remove(index);
}
else{}
}
Donde el else vacío indica que no se hace nada. Realmente hay otras formas quizás mejores de resolverlo, pero no es el momento de ver esto. Simplemente recuerda que los métodos no deben en general mostrar mensajes por pantalla, si quieres que devuelva un mensaje haz que devuelva un String con el mensaje.
Salu2