What is difference between ArrayList and Hashtable in C#?
我想在arraylist或hastable中存储一组数据,但是数据检索应该是高效和快速的。我想知道arraylist和hastable之间隐藏的数据结构(即链表、双链表)
一般来说,在.NET 2.0及更高版本中,
我有一篇博客文章比较了这里每个通用容器的各种好处,这些好处可能很有用:
http://geekswithblogs.net/blackrabbitcoder/archive/2011/06/16/c.net-fundamentals-choosing-the-right-collection-class.aspx
虽然它特别提到了一般的集合,但
哈希表将字符串值映射到哈希表中的值。数组列表将一组项目按编号顺序排列。
1 2 3 4 5 6 7 8 9 10 11 | Hastable ht = new Hastable(); ht("examplenum") = 5; ht("examplenum2") = 7; //Then to retrieve int i = ht("example"); //value of 5 ArrayList al = new ArrayList(); al.Add(2); al.Add(3); //Then to retrieve int j = al[0] //value of 2 |
顾名思义,array list(或list)是用数组实现的…实际上,哈希表也是用相同的数据结构实现的。因此,它们都有一个固定的访问成本(尽可能最好)。
你需要考虑的是你需要什么样的钥匙。如果必须使用任意键(例如字符串)访问数据,则无法使用ArrayList。此外,如果键不相关(或多或少),哈希表应该是您的首选。
希望它有帮助。