Delphi中Hash表的使用方法

  • 来源: 互联网 作者: 若水   2008-03-20/13:52
  • 游戏开发中经常需要保存一些数据结构,并且在使用的时候需要快速的查找出来.Hash表正是为了提高检索速度而设计出来的.下面我就将我在用Delphi开发中使用Hash表的方法写出来,希望对大家有一定的帮助!

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

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

    Word-WRAP: break-Word" bgColor=#f3f3f3>以下是引用片段:
    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;


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多