Delphi中Hash表的使用方法!

简介:
在游戏开发中经常需要保存一些数据结构,并且在使用的时候需要快速的查找出来.Hash表正是为了提高检索速度而设计出来的.下面我就将我在用Delphi开发中使用Hash表的方法写出来,希望对大家有一定的帮助!
在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;
以上就是简单的Hash表操作步骤,其中需要注意的是,在使用DELPHI7的使用hash表的时候,一定要安装补丁.
本文转自狗窝博客51CTO博客,原文链接http://blog.51cto.com/fxh7622/16633如需转载请自行联系原作者

fxh7622
相关文章
|
7月前
|
存储 安全 C++
Qt QList 详解:从底层原理到高级用法
Qt QList 详解:从底层原理到高级用法
1205 2
|
7月前
|
存储 缓存 安全
Qt QLinkedList 详解:从底层原理到高级用法
Qt QLinkedList 详解:从底层原理到高级用法
255 0
|
7月前
|
存储 安全 算法
Qt QQueue 详解:从底层原理到高级用法
Qt QQueue 详解:从底层原理到高级用法
271 0
|
7月前
|
存储 安全 算法
Qt QVector 详解:从底层原理到高级用法
Qt QVector 详解:从底层原理到高级用法
386 0
|
Linux API C语言
Windows下静态、动态库的封装和使用(图解)(下)
Windows下静态、动态库的封装和使用(图解)
269 0
Windows下静态、动态库的封装和使用(图解)(下)
|
C语言 Windows
Windows下静态、动态库的封装和使用(图解)(上)
Windows下静态、动态库的封装和使用(图解)
391 0
Windows下静态、动态库的封装和使用(图解)(上)
HashTable基本介绍与使用方法
HashTable基本介绍与使用方法
|
测试技术 索引 自然语言处理