Ich weiß nicht, wie die Methode heißt, die ich gleich vorschlagen werde; ich vermute, es ist das, was bei Post #3 angesprochen wurde und zwar Hashtable. Falls es das ist, dann tut mir die Redundanz Leid
Du legst ein Array fester Größe an und schreibst dir eine Hashfunktion, die einen Maximalwert = Größe des Arrays zurückliefert. Beispiel:
Delphi-Quellcode:
MeinArray: Array[0..255] of ...;
funciton MyHashFunc(const Str: String): Byte; // liefert 0..255 zurück
Der Hash gibt den Index zum Array.
Wenn ich zb. 'ABC' habe und der Hash davon 1 ist, dann habe ich folgendes:
So, wenn nun ein weiteres Element, 'BCD', denselben Hash, 1, zurückliefert, dann füge ich es hinzu.
Code:
MeinArray[1].Next = 'BCD'
Dazu müsste man einfach eine einfach-verkettete Liste als Element verwenden.
Und wenn man nun ein Element (schnell) suchen möchte, berechnet man den Hash davon, schaut im Array nach, welches Element der Liste es ist und liefert es dann halt als Ergebnis zurück
Edit: Beim nochmaligen Lesen ist mir aufgefallen, dass du Arrays meiden möchtest.
Mit dieser Methode hier wird es aber leichter und effizienter, nach Strings zu suchen.
Falls es trotzdem nicht so das Wahre ist, dann macht das auch nichts