文档章节

Delphi 中的哈希表(2): TStringHash

涂孟超
 涂孟超
发布于 2014/09/26 15:34
字数 252
阅读 22
收藏 0
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses
  IniFiles;  //TStringHash 来自 IniFiles 单元
var
  Hash: TStringHash;

{ TStringHash 的功能非常简单, 如果需要更多功能应该使用: THashedStringList
  TStringHash 与 THashedStringList、TStringList 最大的不同是:
  TStringHash 的 Key 必须是 String; Value 必须是 Integer.
  如果这不适合你的要求, 建一个 TMyHash 也不是难事 }


//建立哈希表
procedure TForm1.FormCreate(Sender: TObject);
var
  i: Integer;
begin
  Hash := TStringHash.Create(26);  //26 是表的初始大小, 可以省略使用默认值256
  for i := 65 to 90 do
  begin
    Hash.Add(Chr(i),i);  //如果表不够大,会自动增加的
  end;
end;

//读取
procedure TForm1.Button1Click(Sender: TObject);
var
  num: Integer;
begin
  num := Hash.ValueOf('Z');
  ShowMessage(IntToStr(num));  //90
end;

//修改、删除、清空
procedure TForm1.Button2Click(Sender: TObject);
begin
  Hash.Modify('Z',100);  //修改
  Hash.Remove('A');      //删除
  Hash.Clear;            //清空

  {没了, 就这些功能}
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  Hash.Free;
end;

end.

本文转载自:http://www.cnblogs.com/del/archive/2007/12/18/1003845.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
一个delphi的hash函数

function hashedtoint(k:string):integer; var seed:integer; hash:integer; i:integer; begin seed:=1313; hash:=0; i:=1; while(i<=length(k)) do begin hash:=hash*seed+integer(byte(k[i......

jingshishengxu
2016/01/11
31
0
redis的hash表介绍

redis的hash表介绍 哈希表(Hash) HSET HSETNX HMSET HGET HMGET HGETALL HDEL HLEN HEXISTS HINCRBY HKEYS HVALS 哈希表(Hash) HSET HSET key field value 将哈希表key中的域field的值设为v......

writeademo
2016/09/04
7
0
Delphi开源组件库--QDAC

QDAC 是由 QDAC 开发组为大家提供的一套 Delphi/C++ Builder 跨平台开源组件库,名称取自英文 Quick Data Access Components 的首字母。它支持 Delphi/C++ Builder 2007 以上的版本的开发环境...

swish
2015/11/23
1K
0
数据结构基础(18) --哈希表的设计与实现

哈希表 根据设定的哈希函数 H(key)和所选中的处理冲突的方法,将一组关键字映射到一个有限的、地址连续的地址集 (区间) 上,并以关键字在地址集中的“映像”作为相应记录在表中的存储位置,如...

翡青
2015/01/13
0
0
redis数据结构-字典

Redis的字典使用哈希表作为底层实现,一个哈希表里面有n个哈希节点,每个节点里面存储着key-value键值对 1、哈希表 哈希表数据结构,下图: 一个空的哈希表,如下图: 2、哈希表节点 数据结构...

将将将
2015/11/27
99
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

python3.6 取余运算

python中取余运算逻辑如下: 如果a 与d 是整数,d 非零,那么余数 r 满足这样的关系: a = qd + r , q 为整数,且0 ≤ |r| < |d|。 经过测试可发现,python3.6中取余运算得到的 r 是正整数;...

colinux
13分钟前
1
0
[雪峰磁针石博客]软件测试专家工具包1web测试

web测试 本章主要涉及功能测试、自动化测试(参考: 软件自动化测试初学者忠告) 、接口测试(参考:10分钟学会API测试)、跨浏览器测试、可访问性测试和可用性测试的测试工具列表。 安全测试工具...

python测试开发人工智能安全
今天
3
0
JS:异步 - 面试惨案

为什么会写这篇文章,很明显不符合我的性格的东西,原因是前段时间参与了一个面试,对于很多程序员来说,面试时候多么的鸦雀无声,事后心里就有多么的千军万马。去掉最开始毕业干了一年的Jav...

xmqywx
今天
3
0
Win10 64位系统,PHP 扩展 curl插件

执行:1. 拷贝php安装目录下,libeay32.dll、ssleay32.dll 、 libssh2.dll 到 C:\windows\system32 目录。2. 拷贝php/ext目录下, php_curl.dll 到 C:\windows\system32 目录; 3. p...

放飞E梦想O
今天
1
0
谈谈神秘的ES6——(五)解构赋值【对象篇】

上一节课我们了解了有关数组的解构赋值相关内容,这节课,我们接着,来讲讲对象的解构赋值。 解构不仅可以用于数组,还可以用于对象。 let { foo, bar } = { foo: "aaa", bar: "bbb" };fo...

JandenMa
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部