一、hashtable和ArrayList的性能比较
hashtable比ArrayList取值更快。原因是前者是根据键直接取值,但是ArrayList是循环整个集合,找到需要的元素。
二、hashtable的用法
1 static void Main(string[] args) 2 { 3 Hashtable hs = new Hashtable(); 4 hs.Add("zs","张三"); 5 hs.Add("ls", "李四"); 6 hs.Add("ww", "王五"); 7 hs.Add("zl", "赵六"); 8 9 //只循环键 10 foreach (var item in hs.Keys) 11 { 12 Console.WriteLine(item); 13 } 14 15 //只循环值 16 foreach (var item in hs.Values) 17 { 18 Console.WriteLine(item); 19 } 20 21 //循环键值对 22 foreach (DictionaryEntry item in hs) 23 { 24 Console.WriteLine(item.Key+" "+item.Value); 25 } 26 27 //hashtable只能根据键来取值,所以通常不能通过for来循环 hashtable。当然如果把键设置成和循环下标相同的值就可以。 28 //for (int i = 0; i <hs.Count; i++) 29 //{ 30 // Console.WriteLine(hs[i]);//不存在这个键,所以不会有内容输出 31 //} 32 33 Console.ReadKey(); 34 }
static void Main(string[] args)
{
Hashtable hs = new Hashtable();
hs.Add("zs","张三");
hs.Add("ls", "李四");
hs.Add("ww", "王五");
hs.Add("zl", "赵六");
//只循环键
foreach (var item in hs.Keys)
{
Console.WriteLine(item);
}
//只循环值
foreach (var item in hs.Values)
{
Console.WriteLine(item);
}
//循环键值对
foreach (DictionaryEntry item in hs)
{
Console.WriteLine(item.Key+" "+item.Value);
}
//hashtable只能根据键来取值,所以通常不能通过for来循环 hashtable。当然如果把键设置成和循环下标相同的值就可以。
//for (int i = 0; i <hs.Count; i++)
//{
// Console.WriteLine(hs[i]);//不存在这个键,所以不会有内容输出
//}
Console.ReadKey();
}