Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Für große Liste mit Objekten (>30000) TList oder TStringList
NOS1971 - Sa 13.04.13 22:48
Titel: Für große Liste mit Objekten (>30000) TList oder TStringList
Hallo,
ich frage mich grad ob welche Liste sich für eine Eintragszahl >30000 Einträge besser nutzt und welche Liste da schneller Arbeitet. TList oder TStringlist oder gibt es andere Varianten ? Die Eintragsbasis ist ein String. Angehangen wird ein Objekt mit weiteren dazugehörigen Daten. Interessant wäre auch ob es eine Begrenzung der Einträge gibt.
Ich würde mich über Eure Meinung und Erfahrungen freuen.
LG,
Andreas
Tranx - So 14.04.13 08:36
Ich geher fast - ohne das beweisen zu können - davon aus, dass TSringlist besser geeignet ist, Deine Strings zu verwalten, als TList. Ob schneller, weiß ich nicht. Aber Du musst ja bei TList, welches ja nur Pointer verwaltet, den Strings selber Speicherplatz zuordnen, während das in der Add-Prozedur von TStringlist automatisch passiert. Und umgekehrt beim Entfernen musst Du den Speicherplat in TList selber freigeben, was bei TStringlist wiederum automatisch passiert. Der Eigenanteil an der Listenverwaltung ist daher sicher ein wenig größer und Fehler schleichen sich dann auch eher ein. Daher würde ich eher zu TStringlist oder TStrings (Vorgänger von TStringlist) raten. Zumal Du bei TStringlist noch den Vorteil einer sortierten Liste, falls benötigt, hast, die sogar u.U. Doppeleinträge abblockt, wenn Du die Eigenschaft Duplicates auf dupError setzst.
Lemmy - So 14.04.13 10:23
Hi,
und wenn Du in der Stringlist noch nach bestimmten Strings suchen musst um das Objekt zurück zu holen, dann schaue dir mal THashedStringList an.
bummi - So 14.04.13 16:15
Ich kenne Deine Delphiversion und das Ziel Deiner Anwendung nicht, gegf. ist TDictionary eine Alternative.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!