Dictionary比hashSet快?

class Program 
{
static void Main(string[] args)
{
HashSet<string> hash=new HashSet<string> ();
//url列表 
StreamReader reader = new StreamReader( "AccessURL.txt", true);
string url = "";
List<string> list = new List<string>();
while (!reader.EndOfStream)
{
url = reader.ReadLine();
list.Add(url); 
}
reader.Close();
Dictionary<string,bool> dic=new Dictionary<string,bool> ();
DateTime time1 = DateTime.Now;
foreach(string s in list)
{
hash.Add(s);
}
DateTime time2 = DateTime.Now;
TimeSpan t = new TimeSpan(time2.Ticks - time1.Ticks);
Console.WriteLine("hash add: " + t.Ticks.ToString());
time1 = DateTime.Now;
foreach(string s in list)
{
dic.Add(s,true);
}
time2 = DateTime.Now;
t = new TimeSpan(time2.Ticks - time1.Ticks);
Console.WriteLine("dicadd: "+t.Ticks.ToString());
time1 = DateTime.Now;
foreach (string s in list)
{
hash.Contains(s);
}
time2 = DateTime.Now;
t = new TimeSpan(time2.Ticks - time1.Ticks);
Console.WriteLine("hashfind: " + t.Ticks.ToString());
time1 = DateTime.Now;
foreach (string s in list)
{
dic.ContainsKey(s);
}
time2 = DateTime.Now;
t = new TimeSpan(time2.Ticks - time1.Ticks);
Console.WriteLine("dic find: " + t.Ticks.ToString());
Console.ReadLine();
}
}
运行结果:
hash add: 625000
dicadd: 156250
hashfind: 468750
dic find: 156250
(1)Dictionary适合数据非常有层次性的东西。特别是具有目录结构的东西。Dictionary本身的含义就是词典嘛。 
(2)保存URL的时候,应该Dictionary比hashSet快。 
保存大量的md5码的时候,Dictionary比hashSet快。 

 

你可能感兴趣的:(数据结构)