文档章节

Delphi 中的哈希表(2): TStringHash

涂孟超
 涂孟超
发布于 2014/09/26 15:34
字数 252
阅读 24
收藏 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

没有更多内容

加载失败,请刷新页面

加载更多

打包QML程序

1、windeployqt执行路径(D:\Qt\5.12.0\msvc2017_64\bin)加入到PATH中 2、使用Qt自带的命令行交互 Command 终端(Qt 5.12.0 64-bit for Desktop (MSVC 2017))切换到 Release 编译成功的exe...

渣渣曦
26分钟前
0
0
优秀互联网高级测试工程师应该具备的能力

概述 在之前写的互联网高级测试工程师至少具备的能力一文中,提到了测试工程师至少具备的能力,但是并没有提到优秀测试工程师应该具备的能力,下文简单的谈一谈。当然这些全部都是我的个人理...

Sam哥哥聊技术
29分钟前
1
0
webpack项目配置

前端工程化 前端工程化是根据业务特点,将前端开发流程规范化,标准化,它包括了开发流程、技术选型、代码规范、构建发布等等,用语提升前端工程师的开发效率和代码质量。 自动化构建工具 1、...

羊皮卷
32分钟前
0
0
Linux命令备忘录: jobs 显示Linux中的任务列表及任务状态命令

jobs命令用于显示Linux中的任务列表及任务状态,包括后台运行的任务。该命令可以显示任务号及其对应的进程号。其中,任务号是以普通用户的角度进行的,而进程号则是从系统管理员的角度来看的...

开元中国2015
今天
3
0
springboot Whitelabel Error Page(Not Found)解决方案

当出现上图图的错误时注意 报错信息 There was an unexpected error (type=Not Found, status=404). Not Found代表未访问到资源 解决方案:比较访问路径和代码的路径有没有写错 正确的访问路...

斩神魂
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部