我想在ArrayList或Hastable中存储一组数据,但数据回溯应该是高效和快速的.我想知道ArrayList和Hastable之间的数据结构隐藏(即链接列表,双链表)
An ArrayList
是一个动态数组,随着新项目的增加而增长,超出了列表的当前容量.ArrayList中的项目由索引访问,非常类似于数组.
这Hashtable
是幕后的哈希表.底层数据结构通常是一个数组,但不是通过索引访问,而是通过一个键字段访问,该字段通过调用密钥对象的GetHashCode()
方法映射到哈希表中的一个位置.
在一般情况下,ArrayList
和Hashtable
不鼓励在.NET 2.0及以上赞成List<T>
和Dictionary<TKey, TValue>
它们更好的通用性能更好,并没有值类型装箱费用版本.
我有一篇博客文章,比较了这里可能有用的每个通用容器的各种好处:
虽然它谈论,特别是通用collecitons,ArrayList
将有类似的复杂性成本List<T>
和Hashtable
到Dictionary<TKey, TValue>