Ich denke, es ist wahrscheinlich eine einfache Antwort, aber ich dachte, dass ich schnell überprüfen würde ...Array vs Wörterbuch Suchleistung in Swift
Sagen wir, ich bin das Hinzufügen Ints
zu einer Reihe an verschiedenen Punkten in meinem Code und dann will ich, wenn ein Array finden eine gewisses Int
in Zukunft enthält ..
var array = [Int]()
array.append(2)
array.append(4)
array.append(5)
array.append(7)
if array.contains(7) { print("There's a 7 alright") }
Ist die schwerere Leistung klug, als wenn ich ein Wörterbuch erstellt?
var dictionary = [Int:Int]()
dictionary[7] = 7
if dictionary[7] != nil { print("There's a value for key 7")}
Offensichtlich gibt es Gründe, wie Sie vielleicht die Möglichkeit von doppelten Einträgen aus der gleichen Anzahl beseitigen wollen ... aber ich könnte auch tun, mit einem Set
.. Ich frage mich in erster Linie nur über die Leistung von dictionary[key]
vs array.contains(value)
Vielen Dank für Ihre Zeit
Sind Sie tatsächlich ein Leistungsproblem zu sehen, oder ist das nur eine allgemeine Frage der Neugier? Verschwenden Sie keine Zeit mit Sorgen um die Leistung, bis Sie sich Sorgen machen müssen. Schreiben Sie zuerst lesbaren, wartbaren Code. – rmaddy
Probieren Sie es aus und messen Sie ... –
Es hängt von vielen Faktoren ab: Ist die Reihenfolge der Werte wichtig oder nicht, Anzahl der Werte, Häufigkeit der Insertionen, ... –