Colección removeAll ignorar el caso?

Ok, así que aquí está mi problema. Tengo queHashSet's, yo uso elremoveAll Método para borrar los valores que existen en un conjunto del otro.

Antes de llamar al método, obviamente agrego los valores alSets. Yo lo llamo.toUpperCase() en cadaString antes de agregar porque los valores son de casos diferentes en ambas listas. No hay rima ni razón para el caso.

Una vez que llameremoveAll, Necesito tener los casos originales de vuelta para los valores que quedan en elSet. ¿Existe una manera eficiente de hacerlo sin correr a través de la lista original y usandoCompareToIgnoreCase?

Ejemplo:

Lista1:

"BOB"
"Joe"
"john"
"MARK"
"dave"
"Bill"

Lista2:

"JOE"
"MARK"
"DAVE"

Después de esto, crea un separadoHashSet para cada lista usandotoUpperCase() enStrings. Luego llameremoveAll.

Set1.removeAll(set2);

Set1:
    "BOB"
    "JOHN"
    "BILL"

Necesito que la lista se vea así otra vez:

"BOB"
"john"
"Bill"

Cualquier idea será altamente apreciada. Sé que es pobre, debería haber un estándar para la lista original, pero no es mi decisión.

Respuestas a la pregunta(5)

Su respuesta a la pregunta