在delphi 6中是否存在任何类型的本地地图实现(将值映射到值和对象) - 到目前为止互联网一直没有帮助.我刚刚把一个delphi项目转储到我的上面,我的背景是c ++和java,而delphi项目的前一个开发人员进行线性搜索.
谢谢.
And*_*and 10
根据您的确切需要,您可能希望使用TStringList对象.
我使用了来自Ciaran McCreesh的名为Hashes.pas的库,但由于他的网站不再可用,您可以从以下URL看到单个PAS文件:
你也可以用谷歌找到它:"Cian McCreesh Hashes"
使用此库,您可以执行以下操作:
aString := TStringHash.Create;
aString['color'] := 'blue';
ShowMessage(aString.Items['color']); // blue
Run Code Online (Sandbox Code Playgroud)
或对象:
aObj := TObjectHash.Create;
aObj['color'] := TBlueClass.Create;
bcBlue:=(aObj.Items['color'] as TBlueClass);
ShowMessage(bcBlue.Name); // Blue (supposing the TBLusClass as a Name property...
Run Code Online (Sandbox Code Playgroud)
希望它既适合您,也适合我.
PS我认为Ares AudioGalaxy项目也使用它.
我已经测试了TStringList和一些THashTable实现,并且两个实现之间的差异很小,并且在大多数情况下,TStringList(具有双声道排序实现)比THashTable更有效.
对于少量值,TStringList比Hash更快,并且对于大量值,您必须找到用于最小化冲突的复杂散列函数,并且这种复杂性降低了HashList的效率.
必须使用StringList 的Object指针来存储所需的所有信息(第二个字符串).
问候.
归档时间: |
|
查看次数: |
10340 次 |
最近记录: |