Collection removeAlle Groß- und Kleinschreibung ignorieren?
Ok, hier ist mein Problem. Ich mussHashSet
Ich benutze dieremoveAll
Methode zum Löschen von Werten, die in einer Gruppe von der anderen vorhanden sind.
Bevor ich die Methode aufrufe, füge ich die Werte offensichtlich der hinzuSet
s. Ich rufe.toUpperCase()
auf jederString
vor dem Hinzufügen, da die Werte in beiden Listen unterschiedliche Groß- und Kleinschreibung haben. Es gibt keinen Reim oder Grund für den Fall.
Einmal rufe ich anremoveAll
Ich muss die Originalfälle für die Werte, die in der Liste verbleiben, zurück habenSet
. Gibt es eine effiziente Möglichkeit, dies zu tun, ohne die ursprüngliche Liste zu durchsuchen und zu verwenden?CompareToIgnoreCase
?
Beispiel:
Liste1:
"BOB"
"Joe"
"john"
"MARK"
"dave"
"Bill"
Liste2:
"JOE"
"MARK"
"DAVE"
Danach erstellen Sie eine separateHashSet
für jede Liste mittoUpperCase()
aufString
s. Dann ruf anremoveAll
.
Set1.removeAll(set2);
Set1:
"BOB"
"JOHN"
"BILL"
Ich brauche die Liste, damit sie wieder so aussieht:
"BOB"
"john"
"Bill"
Irgendwelche Ideen wären sehr dankbar. Ich weiß, dass es schlecht ist, es sollte einen Standard für die ursprüngliche Liste geben, aber das kann ich nicht entscheiden.