1. unit Unit1;
  2.  
  3. interface
  4.  
  5. uses
  6. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7. Dialogs, StdCtrls;
  8.  
  9. type
  10. TForm1 = class(TForm)
  11. Button1: TButton;
  12. Button2: TButton;
  13. procedure FormCreate(Sender: TObject);
  14. procedure FormDestroy(Sender: TObject);
  15. procedure Button1Click(Sender: TObject);
  16. procedure Button2Click(Sender: TObject);
  17. private
  18. { Private declarations }
  19. public
  20. { Public declarations }
  21. end;
  22.  
  23. var
  24. Form1: TForm1;
  25.  
  26. implementation
  27.  
  28. {$R *.dfm}
  29.  
  30. uses
  31. IniFiles; //TStringHash 来自 IniFiles 单元
  32. var
  33. Hash: TStringHash;
  34.  
  35. { TStringHash 的功能非常简单, 如果需要更多功能应该使用: THashedStringList
  36. TStringHash THashedStringListTStringList 最大的不同是:
  37. TStringHash Key 必须是 String; Value 必须是 Integer.
  38. 如果这不适合你的要求, 建一个 TMyHash 也不是难事 }
  39.  
  40. //建立哈希表
  41. procedure TForm1.FormCreate(Sender: TObject);
  42. var
  43. i: Integer;
  44. begin
  45. Hash := TStringHash.Create(); // 是表的初始大小, 可以省略使用默认值256
  46. for i := to do
  47. begin
  48. Hash.Add(Chr(i),i); //如果表不够大,会自动增加的
  49. end;
  50. end;
  51.  
  52. //读取
  53. procedure TForm1.Button1Click(Sender: TObject);
  54. var
  55. num: Integer;
  56. begin
  57. num := Hash.ValueOf('Z');
  58. ShowMessage(IntToStr(num)); //
  59. end;
  60.  
  61. //修改、删除、清空
  62. procedure TForm1.Button2Click(Sender: TObject);
  63. begin
  64. Hash.Modify('Z',); //修改
  65. Hash.Remove('A'); //删除
  66. Hash.Clear; //清空
  67.  
  68. {没了, 就这些功能}
  69. end;
  70.  
  71. procedure TForm1.FormDestroy(Sender: TObject);
  72. begin
  73. Hash.Free;
  74. end;
  75.  
  76. end.

Delphi 中的哈希表(二)—— TStringHash的更多相关文章

  1. Delphi 中的哈希表: THashedStringList

    转自万一博客 Delphi 中的哈希表: THashedStringList unit Unit1; interface uses   Windows, Messages, SysUtils, Var ...

  2. [转]:Delphi 中的哈希表(1): THashedStringList

    unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...

  3. [PHP内核探索]PHP中的哈希表

    在PHP内核中,其中一个很重要的数据结构就是HashTable.我们常用的数组,在内核中就是用HashTable来实现.那么,PHP的HashTable是怎么实现的呢?最近在看HashTable的数据 ...

  4. Python 中的哈希表

    Python 中的哈希表:对字典的理解   有没有想过,Python中的字典为什么这么高效稳定.原因是他是建立在hash表上.了解Python中的hash表有助于更好的理解Python,因为Pytho ...

  5. 【PAT甲级】1078 Hashing (25 分)(哈希表二次探测法)

    题意: 输入两个正整数M和N(M<=10000,N<=M)表示哈希表的最大长度和插入的元素个数.如果M不是一个素数,把它变成大于M的最小素数,接着输入N个元素,输出它们在哈希表中的位置(从 ...

  6. OVS 中的哈希表: shash

    shash出现在OVS的代码中,定义如下:   struct hmap_node {     size_t hash;     struct hmap_node * next; };   struct ...

  7. Freemarker 中的哈希表(Map)和序列(List)

    freemarlker中的容器类型有: 哈希表:是实现了TemplateHashModel或者TemplateHashModelEx接口的java对象,经常使用的实现类是SimpleHash,该类实现 ...

  8. delphi中使用webbrowser提交表单

    转自:http://blog.163.com/hehaifeng1984@126/blog/static/6900113620133504644998/ 我们以百度搜索为例,使用webbrowser组 ...

  9. PAT-1145(Hashing - Average Search Time)哈希表+二次探测解决冲突

    Hashing - Average Search Time PAT-1145 需要注意本题的table的容量设置 二次探测,只考虑正增量 这里计算平均查找长度的方法和书本中的不同 #include&l ...

随机推荐

  1. 那些年不错的Android开源项目

    那些年不错的Android开源项目 转载自 eoe 那些年不错的Android开源项目-个性化控件篇 第一部分 个性化控件(View) 主要介绍那些不错个性化的View,包括ListView.Acti ...

  2. BZOJ 1072: [SCOI2007]排列perm 状态压缩DP

    1072: [SCOI2007]排列perm Description 给一个数字串s和正整数d, 统计s有多少种不同的排列能被d整除(可以有前导0).例如123434有90种排列能被2整除,其中末位为 ...

  3. BaseAdapter自定义适配器

    listview = (ListView) findViewById(R.id.listview); imageview = (ImageView) findViewById(R.id.imagevi ...

  4. Android DrawerLayout 高仿QQ5.2双向侧滑菜单

    1.概述 之前写了一个Android 高仿 QQ5.0 侧滑菜单效果 自定义控件来袭 ,恰逢QQ5.2又加了一个右侧菜单,刚好看了下DrawerLayout,一方面官方的东西,我都比较感兴趣:另一方面 ...

  5. HUE的时区问题

    转自 http://molisa.iteye.com/blog/1953390   我主要是根据这个说明调整的HUE的时区问题 在使用Cloudera Hue时遇到一问题: 1. 使用Sqoop导入功 ...

  6. 3.PopupWindow 、拍照、裁剪

    实现这样的效果 圆角图片的自定义控件直接拷进来,和com一个等级 想要弹出内容可以使用悬浮窗 layout_pupup <LinearLayout xmlns:android="htt ...

  7. Task 实现多线程的模板

        1.Task多线程简单模板   using System; using System.Collections.Generic; using System.Threading.Tasks;   ...

  8. [BZOJ 2631]tree

    裸LCT..QAQ写了三遍没写对 真是老了..QAQ 主要错的地方是 init: size[i] = sum[i] = val[i] = mul[i] = 1; pushdown: 注意判断左右儿子是 ...

  9. CentOS6.5的openssl升级

    CentOS6.5的openssl升级:(修复心脏漏血漏洞) [root@linux1 ~]# rpm -qi openssl|grep VersionVersion : 1.0.1e Vendor: ...

  10. Twemproxy 介绍与使用

    Twemproxy是一种代理分片机制,由Twitter开源.Twemproxy作为代理,可接受来自多个程序的访问,按照路由规则,转发给后台的各个Redis服务器,再原路返回.该方案很好的解决了单个Re ...