在Delphi中有一个THashedStringlist类,使用这个类可以实现Hash表的操作.使用这个类需要引用IniFiles头文件.
例如:我们定义的数据结构是:
以下是引用片段: RTest = record Key:Integer; Name:String[20]; Sex:Boolean; Age:Integer; end; PTest = ^RTest ; 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;