Ich habe eine HashMap, die eine Zuordnung alter URIs (Schlüssel) zu ihren Ersatz-URIs (Werten) enthält. Einige der älteren Werte wurden kombiniert, was bedeutet, dass es doppelte Werte gibt. Hier ist ein kleines Beispiel zeigt, was die Daten sieht aus wie (natürlich nicht echte Websites):Der beste Weg, um eine Liste ohne Duplikate zu erstellen?
http://oldaddress1.com -> http://newaddress1.com
http://oldaddress2.com -> http://newaddress2.com
http://oldaddress3.com -> http://newaddress2.com
Ich brauche nur die einzigartigen neuen Adressen aus der Karte auf die effizienteste Art und Weise möglich zu extrahieren, da es eine recht große Datenmenge ist . Aus dem obigen Beispiel würde ich brauche eine Liste zu erzeugen, die die folgenden Werte hat:
list(0) = http://newaddress1.com
list(1) = http://newaddress2.com
Mein erster Gedanke ein Arraybuffer ‚s enthält Verfahren wie so zu verwenden, war:
if (!(list contains newAddress)) list += newAddress
Aber Mir ist aufgefallen, dass es sich dabei möglicherweise um das mehrfache Scannen vieler Daten handelt, es sei denn, die Methode bietet eine effizientere Möglichkeit, nach einem Duplikat zu suchen, als die gesamte Liste zu scannen.
Mir ist auch bewusst, dass ich leicht eine Karte dafür verwenden könnte, aber es wäre einfacher für die Zwecke von dem, was ich versuche, um es in einer Liste zu haben.
Das ist genau das, was ich gesucht habe. Vielen Dank! – hayfreed