首页 > 代码库 > 双列集合之hashtable

双列集合之hashtable

一、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         }
View Code

 

 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();
        }

双列集合之hashtable