Java: Vergleichen von zwei Zeichenfolgenarrays und Entfernen von Elementen, die in beiden Arrays vorhanden sind

Dies ist hauptsächlich eine Leistungsfrage. Ich habe eine Master-Liste aller Benutzer in einem String-Array AllUids. Ich habe auch eine Liste aller Endbenutzer, die in EndUids eines String-Arrays vorhanden sind.

Ich arbeite in Java und mein Ziel ist es, alle Benutzer, die im Array mit dem Enddatum existieren, aus der Master-Liste AllUids zu entfernen. Ich weiß, PHP hat eine Funktion namens array_diff.

Ich war neugierig, ob Java irgendetwas hat, das zwei Arrays vergleicht und Elemente entfernt, die in beiden ähnlich sind. Mein Ziel ist hier die Leistung, weshalb ich nach einer eingebauten Funktion gefragt habe. Ich möchte keine speziellen Pakete hinzufügen.

Ich habe darüber nachgedacht, eine rekursive Funktion zu schreiben, aber es scheint, als wäre sie ineffizient. In beiden Listen befinden sich Tausende von Benutzern. Um in der Liste mit dem Enddatum zu existieren, müssen Sie in der AllUids-Liste existieren, das heißt, bis sie entfernt wird.

Beispiel:

String[] AllUids = {"Joe", "Tom", "Dan", "Bill", "Hector", "Ron"};

String[] EndUids = {"Dan", "Hector", "Ron"};

Funktionalität, die ich suche:

String[] ActiveUids = AllUids.RemoveSimilar(EndUids);

ActiveUids würden so aussehen:

{"Joe", "Tom", "Bill"}

Ich danke Ihnen allen, natürlich kann ich mir Loops und ähnliches einfallen lassen, aber ich bin nicht sicher, dass es effizient sein wird. Das läuft jeden Tag auf Produktionsmaschinen.

Antworten auf die Frage(7)

Ihre Antwort auf die Frage