Hola me llamo la atención este post, mira un par de recomendaciones, la primera para mas claridad, y la segunda para ampliar un poco la librería:
System.out.println("Por favor introduzca el nombre de un cantante"); EntradaDeTeclado entrada1 = new EntradaDeTeclado();
Intenta poner una instrucción por linea así ganarás en claridad, jeje me costo encontrar donde creabas el objeto "EntradaTeclado entrada1". Simplemente por claridad, para ti y para los demás.
Mi segunda recomendación es sobre la siguiente condición:
if(respuesta.equals("s")== true || respuesta.equals("S")== true){
Existe un método igual que equals que se llama equalsIgnoreCase( String ) que compara las dos cadenas ignorando las mayúsculas y minúsculas. Con lo cual con este método las cadenas "COCHE" , "coche", "Coche" , "CocHE" todas devolverian true si las compararamos con la cadena "coche".
En tu caso, la condición podría ser de la siguiente manera:
if(respuesta.equalsIgnoreCase("s")){
No es que el tuyo este mal, pero si te fijas con este método nos olvidamos de tener que realizar condiciones redundantes para mayúsculas y minúsculas.
Por otro lado fíjate lo que te comentan, cuando un método devuelve un valor booleano, no es necesario usar operadores.
Y nada, un saludo y espero que te sea util el metodo equalsIgnoreCase( String ).