文档章节

Delphi 中的哈希表(2): TStringHash

涂孟超
 涂孟超
发布于 2014/09/26 15:34
字数 252
阅读 26
收藏 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
深圳
程序员
私信 提问
数据结构基础(18) --哈希表的设计与实现

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

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

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

将将将
2015/11/27
99
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
【Redis基本数据结构】字典实现 rehash介绍

字典, 又称为符号表 关联数组或者映射,是一种保存键值对的抽象数据结构. 字典作为一种常用数据结构被内置在许多程序语言中,由于 C 语言没有内置这种数据结构, Redis 构建了自己的字典实现. 字...

xiaomin0322
2018/03/01
0
0
PHP哈希表碰撞攻击原理

文章出处:http://www.codinglabs.org/html/hash-collisions-attack-on-php.html 最近哈希表碰撞攻击(Hashtable collisions as DOS attack)的话题不断被提起,各种语言纷纷中招。本文结合P...

鉴客
2012/04/17
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

搜索引擎(Lucene-索引详解)

IndexWriter详解 问题1:索引创建过程完成什么事? 回顾架构图 Lucene索引创建API 图示 Lucene索引创建代码示例 public static void main(String[] args) throws IOException { // 创建...

这很耳东先生
14分钟前
1
0
JavaScript数据结构之栈实例用法

在本篇文章里小编给大家分享了关于JavaScript数据结构之栈实例用法内容,写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下。如有不足之处,欢迎批评指正。 栈 先来看...

前端攻城老湿
24分钟前
1
0
springboot 使用 redis 管理session

1.pom.xml 引入依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId> </dependency><dependency> ......

狼王黄师傅
24分钟前
1
0
Js取小数点后两位四种方法

在本篇文章里小编给大家分享了关于js取小数点后两位四种方法和实例代码,写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下。如有不足之处,欢迎批评指正。 Javascri...

前端攻城小牛
30分钟前
1
0
js 唤端

h5页面唤起app const appDownload = () => { // 分享- 唤起 - 下载function failed() {window.location = '应用商店的scheme '}function transfer(cb) {window.location.href =......

何祯粮
31分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部