RAD Studio 10.2.3 测试√
procedure TForm1.Button_HashedStringListClick(Sender: TObject);
var
mHash: THashedStringList; // uses IniFiles;
i: Integer;
begin
// 哈希表是通过哈希值来访问的,通过一定的内存浪费获取检索速度,在检索项时是不需要逐一检索。
mHash := THashedStringList.Create;
try
for i := 97 to 122 do
begin
mHash.Add(Char(i) + '=' + IntToStr(i));
end;
Memo1.Lines.Add(mHash.Text);
Memo1.Lines.Add('=================');
Memo1.Lines.Add('c=99 的下标: ' + IntToStr(mHash.IndexOf('c=99')));
Memo1.Lines.Add('索引 c 的下标: ' + IntToStr(mHash.IndexOfName('c')));
Memo1.Lines.Add(IntToStr(mHash.IndexOfName('99'))); // -1
Memo1.Lines.Add('=================');
Memo1.Lines.Add('重新赋值前的 c = ' + mHash.Values['c']);
mHash.Values['c'] := 'xiaoyin01';
Memo1.Lines.Add('重新赋值后的 c = ' + mHash.Values['c']);
Memo1.Lines.Add('—————————————————');
Memo1.Lines.Add('重新赋值前下标为 2 的值 = ' + mHash.ValueFromIndex[2]);
mHash.ValueFromIndex[2] := 'xiaoyin02';
Memo1.Lines.Add('重新赋值后下标为 2 的值 = ' + mHash.ValueFromIndex[2]);
Memo1.Lines.Add('=================');
// 还有其余的跟 TStringList 的差不多
finally
mHash.Free;
end;
end;
运行结果
一点点笔记,以便以后翻阅。