число в трех нижних строках одно и тоже или нет? var
Dict: TDictionary<Integer, string>;
i, j: Integer;
t: DWord;
begin
Dict := TDictionary<Integer, string>.Create;
Randomize;
t := GetTickCount;
for i := 1 to 2000000 do begin
j := Random(2000000);
if not Dict.ContainsKey(j) then
Dict.Add(j, 'asdfasdf');
end;
Memo1.Lines.Add((GetTickCount - t).ToString + ' ' + Dict.Count.ToString);
t := GetTickCount;
for i in Dict.Keys do
if i mod 2 = 0 then
Dict.Remove(i);
Memo1.Lines.Add((GetTickCount - t).ToString + ' ' + Dict.Count.ToString);
t := GetTickCount;
for i in Dict.Keys do
if i mod 2 = 0 then
Dict.Remove(i);
Memo1.Lines.Add((GetTickCount - t).ToString + ' ' + Dict.Count.ToString);
t := GetTickCount;
for i in Dict.Keys do
if i mod 2 = 0 then
Dict.Remove(i);
Memo1.Lines.Add((GetTickCount - t).ToString + ' ' + Dict.Count.ToString);
TObjectList - гибкая замена TDictionary.
эти классы решают абсолютно разные задачи и не являются заменой друг другу
можно пожалуйста пример задач, отличных для обоих классов?
принципиальное отличие в том, что поиск в словаре осуществляется за константное время и словарь не хранит порядок элементов. плюсом слегка увеличенный расход памяти
Ну мы же его всё-таки обсуждаем
Обсуждают сегодня