Delphi中Hash表的使用方法

如题所述

第1个回答  2022-09-30
    在游戏开发中经常需要保存一些数据结构 并且在使用的时候需要快速的查找出来 Hash表正是为了提高检索速度而设计出来的 下面我就将我在用Delphi开发中使用Hash表的方法写出来 希望对大家有一定的帮助!

  在Delphi中有一个THashedStringlist类 使用这个类可以实现Hash表的操作 使用这个类需要引用IniFiles头文件

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

以下是引用片段   RTest = record   Key:Integer;   Name:String[ ];   Sex:Boolean;   Age:Integer;   end;   PTest = ^RTest ;    创建Hash表   ScHash:=THashedStringlist Create;    将数据结构加入Hash表中   var   Index:Integer;   p_Test:PTest;   Index:=ScHash IndexOf(IntToStr(p_Test Key));   if Index=  then   begin   ScHash AddObject(IntToStr(p_Test Key) TObject(Integer(p_Test)));   end;

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

   将数据结构从Hash表中删除

以下是引用片段   var   Index:Integer;   t_Object: TObject;   Index:=ScHash IndexOf(IntToStr(p_Test Key));   if Index<>  then   begin   t_Object:=ScHash Objects[Index];   ScHash Delete(Index);   end;

   删除Hash表

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

lishixinzhi/Article/program/Delphi/201311/24714