网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 交易代码 > Delphi精品代码 > 正文

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;

  版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。
设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师