Dictionary.Keys返回的KeyCollection操作有多快? (.NET)

|
IDictionary<TK, TV>
定义方法
IDictionary.ContainsKey(in TK)
和属性
IDictionary.Keys
(类型
ICollection
)。 我对这种方法的渐近性和ѭ0的
Dictionary
实现中的属性感兴趣。 考虑定义
IDictionary<int, string> dict = new Dictionary<int, string>();
int k = new Random().Next();
并认为我们已经在字典中添加了
dict
n
唯一
KeyValuePair
s。 呼叫ѭ10的预期(渐近)复杂度是多少?我希望它在
O(1)
中,但我在ѭ12documentation的文档中找不到它。 呼叫
dict.Keys.Contains(k)
的预期(渐近)复杂度是多少?我希望它在ѭ11中,但在ѭ15和16的文档中都找不到。如果在ѭ11中,我不明白为什么
IDictionary.Keys
属性的类型是
ICollection
而不是
ISet
(例如在Java中)。     
已邀请:
由于“ 21”只是一个接口,而不是一个实现,因此它不提供任何性能保证。 对于内置的
Dictionary<K,V>
类型,
ContainsKey
方法应为O(1):   此方法接近O(1)操作。
Keys.Contains
方法实际上调用父词典的
ContainsKey
方法,因此也应为O(1):   此方法是O(1)操作。 (两个引号均来自相关文档页面的“备注”部分。)     
您提供的第一个链接在备注中说:   此方法接近O(1)操作。 另外,如果单击
Contains
方法,则会在备注中看到相同的内容:   此方法是O(1)操作。     

要回复问题请先登录注册