Коллекция удалитьВсе случаи игнорирования?

Итак, вот моя проблема. Мне пришлосьHashSetя используюremoveAll метод для удаления значений, которые существуют в одном наборе из другого.

Перед вызовом метода я, очевидно, добавляю значения вSets. Я звоню.toUpperCase() на каждойString перед добавлением, потому что значения имеют разные случаи в обоих списках. Там нет рифмы или причины для дела.

Однажды позвонюremoveAllМне нужно вернуть исходные случаи для значений, оставленных вSet, Есть ли эффективный способ сделать это, не пробегая оригинальный список и не используяCompareToIgnoreCase?

Пример:

List1:

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

List2:

"JOE"
"MARK"
"DAVE"

После этого создайте отдельныйHashSet для каждого списка с использованиемtoUpperCase() наStrings. Тогда позвониremoveAll.

Set1.removeAll(set2);

Set1:
    "BOB"
    "JOHN"
    "BILL"

Мне нужно, чтобы список снова выглядел так:

"BOB"
"john"
"Bill"

Любые идеи будут высоко оценены. Я знаю, что это плохо, должен быть стандарт для оригинального списка, но это не мне решать.

Ответы на вопрос(5)

Ваш ответ на вопрос