在Delphi中实现一个巨大但简单的索引StringList,可以使用TDictionary类。TDictionary是一个泛型集合类,它允许您存储键值对,并根据键快速检索值。以下是如何使用TDictionary实现一个巨大但简单的索引StringList的示例:
program SimpleIndexedStringList;
{$APPTYPE CONSOLE}
uses
System.Generics.Collections,
System.SysUtils;
type
TIndexedStringList = class
private
FDictionary: TDictionary<string, string>;
public
constructor Create;
destructor Destroy; override;
procedure Add(const Key, Value: string);
function GetValue(const Key: string): string;
end;
constructor TIndexedStringList.Create;
begin
FDictionary := TDictionary<string, string>.Create;
end;
destructor TIndexedStringList.Destroy;
begin
FDictionary.Free;
inherited;
end;
procedure TIndexedStringList.Add(const Key, Value: string);
begin
FDictionary.AddOrSetValue(Key, Value);
end;
function TIndexedStringList.GetValue(const Key: string): string;
begin
if FDictionary.TryGetValue(Key, Result) then
Exit;
Result := '';
end;
var
IndexedStringList: TIndexedStringList;
begin
IndexedStringList := TIndexedStringList.Create;
try
IndexedStringList.Add('key1', 'value1');
IndexedStringList.Add('key2', 'value2');
IndexedStringList.Add('key3', 'value3');
WriteLn(IndexedStringList.GetValue('key1'));
WriteLn(IndexedStringList.GetValue('key2'));
WriteLn(IndexedStringList.GetValue('key3'));
finally
IndexedStringList.Free;
end;
ReadLn;
end.
在这个示例中,我们创建了一个名为TIndexedStringList的类,它使用TDictionary来存储键值对。我们实现了一个简单的Add方法来添加键值对,以及一个GetValue方法来根据键快速检索值。在主程序中,我们创建了一个TIndexedStringList实例,并添加了一些键值对,然后使用GetValue方法检索它们。
这种实现方式具有较高的性能,因为TDictionary使用哈希表来存储数据,因此查找速度非常快。同时,它也非常简单易用,非常适合实现巨大但简单的索引StringList。
领取专属 10元无门槛券
手把手带您无忧上云