[简单研究]数组与哈希表的效率 1


测试文件hash.txt,是一个50万行的文本,每行有一个与行号相同的数字.下面两组测试,分别测试哈希表与数组在数据检索方面的效率.

$txt = [io.file]::ReadAllLines('hash.txt');
#哈希表测试
Measure-Command {
    $hash = @{};
    foreach($line in $txt){ $hash.Add($line,$line); }
    foreach($line in $txt){ $hash.ContainsKey($line); }
}
#数组测试
Measure-Command {
    [System.Collections.ArrayList] $ary = @();
    foreach($line in $txt){ $ary.Add($line); }
    foreach($line in $txt){ $ary.Contains($line); }
}

测试结果:哈希表1.9秒完成.而数组10分钟还没出结果(两者相差太大,终止测试).
哈希表不能添加重复Key,这对于数据去重很方便,而且效率非常高.在需要查询大量数据的场合,可以考虑将数组转换为哈希表(索引为Key,数据为Value).

不过,这并不意味着哈希表能取代数组.


回复 Mooser Lee 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注

一条评论 “[简单研究]数组与哈希表的效率