program hash2_2;
uses
simpleHash in 'simpleHash.pas';
var h1,h2: TStringHash;
p1,p2: PHashEntry;
n, i: cardinal;
code: integer;
s: string;
begin
n :=1;
if ParamCount=1 then
Val(ParamStr(1),n,code);
h1:=TStringHash.Create;
for i:=1 to 10000 do begin
str(i, s);
h1.add('foo_'+s,i);
end;
h2:=TStringHash.Create;
for i:=1 to n do begin
p1:=h1.getFirst;
while p1<>nil do begin
p2:=h2.get(p1^.Key);
if p2=nil then
h2.add(p1^.Key,p1^.Value)
else
inc(p2^.Value,p1^.Value);
p1:=h1.getNext;
end;
end;
writeLn(h1.get('foo_1')^.Value,' ',
h1.get('foo_9999')^.Value,' ',
h2.get('foo_1')^.Value,' ',
h2.get('foo_9999')^.Value);
h1.Destroy;
h2.Destroy;
end.