阅读784 返回首页    go 技术社区[云栖]


TStringHash哈希表使用

TStringHash的key必须是string类型,value必须是integer类型。TStringHash.add(key, value)在网上说当长度不够时,自动扩展。于是TStringHash.Create(0)初始化长度为0。

运行以下代码:

uses System.IniFiles;

procedure TForm2.Button1Click(Sender: TObject);
var
  tmp : TStringHash;
  i : Integer;
  key : string;
begin
  try
    tmp := TStringHash.Create(0);
    for i := 1 to 100 do
    begin
      key := '数字' + inttostr(i);
      tmp.Add(key, i);
    end;
  finally
    tmp.Free;
  end;
end;

出现异常:Division by zero。
将TStringHash.Create(0)改为TStringHash.Create(1)后,正常运行,说明add方法确实能够扩展长度,但是必须初始化长度不为0.

最后更新:2017-05-07 07:57:21

  上一篇:go 关于数据科学家面试的那些事儿
  下一篇:go 软件设计师考试笔记:UML统一建模语言