Коллекция удалитьВсе случаи игнорирования?
Итак, вот моя проблема. Мне пришлосьHashSet
я используюremoveAll
метод для удаления значений, которые существуют в одном наборе из другого.
Перед вызовом метода я, очевидно, добавляю значения вSet
s. Я звоню.toUpperCase()
на каждойString
перед добавлением, потому что значения имеют разные случаи в обоих списках. Там нет рифмы или причины для дела.
Однажды позвонюremoveAll
Мне нужно вернуть исходные случаи для значений, оставленных вSet
, Есть ли эффективный способ сделать это, не пробегая оригинальный список и не используяCompareToIgnoreCase
?
Пример:
List1:
"BOB"
"Joe"
"john"
"MARK"
"dave"
"Bill"
List2:
"JOE"
"MARK"
"DAVE"
После этого создайте отдельныйHashSet
для каждого списка с использованиемtoUpperCase()
наString
s. Тогда позвониremoveAll
.
Set1.removeAll(set2);
Set1:
"BOB"
"JOHN"
"BILL"
Мне нужно, чтобы список снова выглядел так:
"BOB"
"john"
"Bill"
Любые идеи будут высоко оценены. Я знаю, что это плохо, должен быть стандарт для оригинального списка, но это не мне решать.