简单学习Hashtable

浅浅的花香味﹌ 2023-02-25 02:18 73阅读 0赞
  1. 什么是Hashtable?
    Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似keyvalue的键值对,其中key通常可用来快速查找,同时key是区分大小写;value用于存储对应于key的值。Hashtable中keyvalue键值对均为object类型,所以Hashtable可以支持任何类型的keyvalue键值对.
  2. 为什么要使用?
    (1)数据高频率使用
    (2)数据量较大
    (3)查询字段包含string类型
    (4)包含多种数据类型
    3.程序示例
    注意引用命名空间:using System.Collections;

    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.Linq;
    using System.Security.Cryptography.X509Certificates;
    using System.Text;
    using System.Threading.Tasks;

    namespace HashtableExample
    {

    1. class Program
    2. {
    3. static void Main(string[] args)
    4. {
    5. //声明一个示例对象
    6. Hashtable hashtable = new Hashtable();
    7. //放入key-string
    8. hashtable.Add("a", "hashtable-a");
    9. hashtable.Add("B", "hashtable-B");
    10. hashtable.Add("UserName", "hashtable-UserName");
    11. hashtable.Add("Password", "hashtable-Password");
    12. //放入key-int
    13. hashtable.Add(0, "hashtable-3");
    14. //放入key-模型
    15. hashtable.Add("test", new Test());
    16. Console.WriteLine(hashtable["a"].ToString());
    17. Console.WriteLine(hashtable["B"].ToString());
    18. Console.WriteLine(hashtable["UserName"].ToString());
    19. Console.WriteLine(hashtable["Password"].ToString());
    20. Console.WriteLine(hashtable[0].ToString());
    21. Console.WriteLine(((Test)hashtable["test"]).Name);
    22. Console.WriteLine(((Test)hashtable["test"]).Age);
    23. //测试千万条数据插入
    24. DateTime d1 = DateTime.Now;
    25. for (int i = 1; i <= 1000000; i++)
    26. {
    27. hashtable.Add(i, new Test());
    28. }
    29. Console.WriteLine("插入耗时:"+(DateTime.Now - d1).TotalSeconds+"s");
    30. DateTime d2 = DateTime.Now;
    31. for(int i = 1; i <= 10; i++)
    32. {
    33. Console.WriteLine(((Test)hashtable[i]).Name);
    34. }
    35. Console.WriteLine("取出10条耗时:" + (DateTime.Now - d2).TotalSeconds + "s");
    36. Console.WriteLine(hashtable.Count);
    37. Console.Read();
    38. }
    39. public class Test
    40. {
    41. public Test()
    42. {
    43. Name = "小明";
    44. Age = 10;
    45. }
    46. public string Name { get; set; }
    47. public int Age { get; set; }
    48. }
    49. }

    }

结果

发表评论

表情:
评论列表 (有 0 条评论,73人围观)

还没有评论,来说两句吧...

相关阅读