在Delphi中有一個(gè)THashedStringlist類(lèi),使用這個(gè)類(lèi)可以實(shí)現(xiàn)Hash表的操作.使用這個(gè)類(lèi)需要引用IniFiles頭文件.
例如:我們定義的數(shù)據(jù)結(jié)構(gòu)是:
以下是引用片段: RTest = record Key:Integer; Name:String[20]; Sex:Boolean; Age:Integer; end; PTest = ^RTest ; 1:創(chuàng)建Hash表. ScHash:=THashedStringlist.Create; 2:將數(shù)據(jù)結(jié)構(gòu)加入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表的時(shí)候,首先我們檢查看這個(gè)Key是否在Hash表中,如果Index=-1則說(shuō)明此Key不在Hash表中,則我們將這個(gè)結(jié)構(gòu)指針加入到Hash表中.
3:將數(shù)據(jù)結(jié)構(gòu)從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表的時(shí)候和一般的Tlist刪除一樣,使用Free.
ScHash.Free;