Delphi中Hash表的使用方法
2008-09-09 23:32
447 查看
在游戏开发中经常需要保存一些数据结构,并且在使用的时候需要快速的查找出来.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;
在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;
相关文章推荐
- Delphi中Hash表的使用方法! 推荐
- Delphi中Hash表的使用方法
- Delphi中Hash表的使用方法(THashedStringlist)
- Delphi中Hash表的使用方法(THashedStringlist)
- Delphi中Hash表的使用方法
- delphi中在使用locate方法时显示“operation not applicable”错误
- Delphi模糊查询[ POS函数和Like SQL语句 ]使用方法
- delphi中Message消息的使用方法
- Delphi dbgrideh使用方法
- 使用Delphi,显示ActiveX控件的属性页方法
- 关于Delphi中预编译指令的使用方法
- 使用Delphi 7控制Word 2000生成文档的方法
- Delphi 模式窗体返回值ModalResult的使用方法及注意事项
- Delphi 使用 FireBird嵌入式版本发布方法
- 关于Delphi中预编译指令的使用方法
- delphi列表视图组件(TListView)使用方法|实例
- delphi “div”、“mod”、“\”除法运算符的区别与使用方法
- delphi使用可变参数函数的方法 (2012-10-08 12:47:01)
- Delphi使用BDE连接远程MS SQL SERVER 2000数据库时出现“Db-library network communciations layer not loaded.”错误的解决方法
- delphi中Message消息的使用方法