vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Generische Dictionary: Liste der Keys zu einem Value abfragen 
Autor: Preisser
Datum: 28.11.11 18:09

Hallo,

das Ziel eines Dictionaries ist ja, eine schnelle Zuordnung von einem gegebenen Key zu einem bestimmten Value zu bieten. Dies wird durch die Speicherung als Hashtabelle erreicht, was fast eine O(1)-Zuordnung bietet (zumindest falls der Key-Typ eine gute Implementierung der GetHashCode()-Funktion bietet), wobei der Füllgrad glaub ich bei ungefähr 75 % gehalten wird, um eine gute Ausnutzung des vorhandenen Platzes bei möglichst wenigen Kollisionen (bei 75% Füllgrad müssten es durchschnittl. 4 sein) zu gewährleisten.

Wenn man nun zu einem bestimmten Value die Keys erhalten will, geht es wohl nicht anders, als den kompletten Inhalt der Hashtable zu durchlaufen und nach Values zu suchen, die mit dem gesuchten übereinstimmen (die Values sind ja in der Reihenfolge der Hashwerte der Keys abgelegt, von daher kann man auch keine binäre Suche oder so verwenden).
Ich hab mich zwar noch nicht mit Linq beschäftigt, aber eine Abfrage per Linq muss ja vermutlich auch in eine Schleife umgewandelt werden, die die Auflistung durchläuft und dann auf die Werte die angegebene Funktion anwendet (von daher könnte ich mir vorstellen, dass man einen sehr geringen Geschwindigkeitsvorteil bekommen würde, wenn man direkt eine Schleife verwenden würde).

Wenn man regelmäßig die Keys zu einem bestimmten Value haben will, würde ich einfach ein zweites Dictionary (für O(1)-Zugriffe per Hashwert) bzw. SortedDictionary (für O(log n)-Zugriffe per Vergleich) verwenden, das die Values des ursprünglichen Dictionary auf die Keys des ursprünglichen Dict. mappt (bzw. auf eine Liste der Keys, falls im ursprünglichen Dictionary mehrere Keys auf ein Value zugeordnet werden können).

Beitrag wurde zuletzt am 28.11.11 um 18:16:29 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Generische Dictionary: Liste der Keys zu einem Value abfrage...2.189Manfred X28.11.11 12:55
Re: Generische Dictionary: Liste der Keys zu einem Value abf...1.408Preisser28.11.11 18:09
Re: Generische Dictionary: Liste der Keys zu einem Value abf...1.271Manfred X28.11.11 19:22

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel