Delphi 使用哈希表 (键值对 key)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Delphi 使用哈希表(键值对key)

以往在软件开发中经常需要用哈希表保存一些数据结构,C#下的哈希表可以快速检索数据,其实Delphi也提供了对哈希表的支持,下面我就将我在用Delphi开发中使用Hash表的方法写出来,希望对大家有一定的帮助!

在Borland Delphi中有一个THashedStringlist类,使用这个类可以实现Hash表的操作.使用这个类需要引用IniFiles单元.

例如:我们定义的数据结构是:

以下是引用片段:

MyHashTest = record

Key:Integer;

Name:String[20];

Sex:Boolean;

Age:Integer;

end;

PTest = ^MyHashTest ;

1:创建Hash表.

ScHash:=THashedStringlist.Create;

2:将数据结构加入Hash表中.

var

Index:Integer;

p_Test:PTest;

Index:=ScHash.IndexOf(IntToStr(p_Test.Key));

if Index=-1 then

begin

ScHash.AddObject(IntToStr(p_Test.Key),TObject(Integer( p_Test)));

end;

在加入Hash表的时候,首先我们检查看这个Key是否在Hash表中,如果Index=-1则说明此Key不在Hash表中,则我们将这个结构指针加入到Hash表中.

3:将数据结构从Hash表中删除.

以下是引用片段:

var

Index:Integer;

t_Object: TObject;

Index:=ScHash.IndexOf(IntToStr(p_Test.Key));

if Index -1 then

begin

t_Object:=ScHash.Objects[Index];

ScHash.Delete(Index);

end;

4:删除Hash表

在删除Hash表的时候和一般的Tlist删除一样,使用Free.

ScHash.Free;

相关文档
最新文档