字典、列表或数组
本文关键字:数组 列表 字典 | 更新日期: 2023-09-27 18:16:07
我正在编写一个性能至关重要的服务,我不确定什么是最快的。我有几个对象(50-200),每个对象都有一个ID (int,例如84397或23845)。拥有一个字典,一个键值对列表或一个索引设置为id的列表,其余的具有空值或具有相同想法的数组会更快吗?
这取决于您想要执行的操作。假设您希望查找具有给定ID的对象。
-
巨大数组方法是最快的:访问
myArray[84397]
是一个常数时间操作O(1)。当然,这种方法需要最大的内存。
字典几乎一样快,但需要更少的内存,因为它在内部使用哈希表。 - 对列表方法是最慢的,因为您可能必须遍历整个列表才能找到您的条目,这产生O(n)复杂度。
因此,在您的情况下,我会选择字典,除非大数组的稍微更好的性能确实与您的情况有关。
Dictionary<TKey, TValue>
内部使用哈希表,所以我认为它将是最快的。
字典与列表查找时间
另外,关于不同集合的更详细的解释,请查看这个问题
也可以使用哈希表。字典内部使用它。但是dictionary有一个优点,那就是它是一个通用类型,它给了你类型安全。
这里是不同的线程字典Vs哈希表我希望它能帮助你做出决定。
Praveen