我爱电脑技术论坛's Archiver

65006 发表于 2008-6-22 11:35

.NET 2中Hashtable快速查找的方法

一般来说我们都是用 Hashtable 的 ContainsKey 方法来查找 Hashtable 中是否存在某个键值然后读取他,但是这个方法并不是效率最好的方法。比较好的方法是直接读取键值然后判断这个对象是否为 null 然后读取。两种代码分别如下:
r wnQ/X 7J&q`9{9\Z3d0r4v
QJMk!rAx6C/o
1.一般慢速的方法:.wH Ru@
if (objHash.ContainsKey(keyValue))
'ouEI8\"A/s'p { j8cliS/M0E@#S7j
    strValue=(String)objHash[keyValue];
AtN~1l(Mh)T-Hx} }  9u0bfQW B*_*v}W^

7x,A4aW$Ty %{8rZ#w0g_a
      2.而快速的方法是:
d(`n\*s Object objValue=objHash[keyValue]; {tA/CzbJ1\
if (objValue!=null) 2Aoay U y}M
{
6^ yCq[2U4[/H+S;c     strValue=(String)objValue;
|B#~d3Z,f+N4W }
!d^ V T!cz4E l
,I`BD4p8kT#` jw9L^       两种方法的速度经过测试能差一倍左右。如果不需要获得对应键的值,而是只判断的话,两种方法的区别不会很明显,大家有空可以测试下。

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.