Buenos días.
Tu ejercicio es correcto.
Aqui te dejo otra forma de hacerlo:
import java.util.ArrayList;
public class ListaCantantesFamosos1{
private ArrayList<String> listaCantantesF;
public ListaCantantesFamosos1(){
listaCantantesF = new ArrayList<String>();
listaCantantesF.add("Jose Feliciano");
listaCantantesF.add("Silvio Rodriguez");
listaCantantesF.add("Manuel Garcia");
}
public void setNuevoCantante(String nuevoCantante){
listaCantantesF.add(nuevoCantante);
}
public void mostrarLista (){
int i=1;
for ( String cantante:listaCantantesF){
System.out.println ( (i)+ "- " + cantante );
i++;
}
}
}
import java.util.Scanner;
public class TextListaCantantesFamosos1{
public static void main (String [] args){
ListaCantantesFamosos1 listaCantantes=new ListaCantantesFamosos1();
Scanner entradaEscaner = new Scanner (System.in);
int resp=0;
System.out.println ("Empezamos el programa");
listaCantantes.mostrarLista();
while (resp==0) {
System.out.println ("Por favor escriba el nombre de un cantante famoso");
listaCantantes.setNuevoCantante(entradaEscaner.nextLine ());
listaCantantes.mostrarLista();
System.out.println (" Si deseas introducir otro cantante escribe Si.\nSi quieres salir pulsa intro.");
if (!entradaEscaner.nextLine ().equalsIgnoreCase("Si")){resp=1;}
}
System.out.println (" Adios");
}
}