Hola rubens!
Primero que nada, asegúrate subir todas las clases de tu código. Veo que en tu clase test, usas una clase "EntradaDeTeclado", para poder probarlo, tuve que usar scanners. Bueno empezando por el código:
La clase "ListaCantatesFamosos" todo bien, pero a la hora de ejecutar tu prueba o la clase "TestListaCantantes", aparecen los errores:
![](http://i.imgur.com/V5a5Npg.png)
Como se pudo ver, solo una parte del código funciono correctamente... Ahora, en tu código puedo ver una repetición... para poder probarlo, yo lo desarrollaría de la siguiente manera:
package Leel;
import java.util.Scanner;
public class Main {
public static void main ( String [ ] args){
Scanner resp = new Scanner(System.in);
String dato = ""; boolean A = false, B = false;
System.out.println("Empezamos el programa");
ListaCantantesFamosos lista1 = new ListaCantantesFamosos();
lista1.addNombre("Ruben Blades");
lista1.addNombre("Soda Estereo");
lista1.addNombre("Ricky Martin");
System.out.println("La lista de los cantantes en la lista son: ");
lista1.listar();
do{
B = false; A = false;
System.out.print("Ingrese otro cantante mas: ");
dato = resp.nextLine();
lista1.addNombre(dato);
lista1.listar();
while(B == false){
System.out.println("¿Desea ingresar otro cantante?");
dato = resp.nextLine();
if(dato.equalsIgnoreCase("Si")){A = false; B = true;}
else if(dato.equalsIgnoreCase("No")){A = true; B = true;}
else System.out.println("Caracter desconocido.");
}
}while(A == false);
}
}
Compilado quedaría así:
![](http://i.imgur.com/bwJvtm9.png)
La variable booleana "A", manejara el bucle para añadir cantantes mientras que la variable Booleana "B", manejara la toma de desicion de si o no. Existen muchísimas formas mas de resolverlo... esta es la mía... directamente de mi lógica. (Recordad que existen lógicas parecidas... pero jamas iguales.)
Por ultimo, porque si el enunciado habla de cantantes, tienes jugadores de baloncesto?
![Huh ???](https://aprenderaprogramar.com/foros/Smileys/default/huh.gif)
Saludos!