男人半小时正常吗:Delphi 使用哈希表 (键值对 key)

来源:百度文库 编辑:偶看新闻 时间:2024/05/09 07:07:27
以往在软件开发中经常需要用哈希表保存一些数据结构,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;