2009-06-29 10 views

Antwort

5

Ja, es heißt Set. Die meisten Sprachen implementieren sie in irgendeiner Form.

+0

In der Tat. Die typischste Implementierung ist ein "Hash-Satz", der durch Berechnung des Hash-Wertes jedes Objekts auf Eindeutigkeit prüft. – Noldorin

+0

Um den zweiten Teil Ihrer Frage zu beantworten, indexieren "Hash-Set" auch die Elemente auf dem Hash-Wert von Objekten. –

+0

Nicht nur der Hash, denn das ist nur eine notwendige, nicht eine ausreichende Bedingung. Sie müssen immer noch auf Gleichheit prüfen, wo der Hash derselbe ist. – Joey

0

Das Problem damit ist, dass der Wert alles sein kann, so dass es sehr offen und nicht immer praktisch ist.

0

SQL mit einem eindeutigen Feld. setzt in Python. Dateinamen auf Dateisystemen. Hängt davon ab, wie Sie "Inhalt" definieren.

2

Sicher, einer, der in den Sinn kommt, ist Cocoas NSSet-Klasse. Die C++ - STL hat auch eine Set-Klasse.

Natürlich brauchen Sie eine Möglichkeit, ein eindeutiges Objekt zu definieren, das über den einfachen Zeiger- oder Referenzvergleich hinausgeht. Zum Beispiel werden in Cocoa zwei Objekte für den Zweck von NSSet als gleich angesehen, wenn sie auf isEqual: mit YES antworten und denselben Hash-Code haben.