很明显,泛型HashSet<T>类的搜索性能高于泛型List<T>类.只需将基于散列的密钥与线性方法进行比较即可List<T>.
但是,计算散列键本身可能需要一些CPU周期,因此对于少量项目,线性搜索可以是一个真正的替代HashSet<T>.
我的问题:收支平衡在哪里?
为了简化场景(并且公平),我们假设List<T>该类使用元素的Equals()方法来标识项目.
我经常想要优化.Contains集合的性能.
我总是通过Dictionary<TKey,bool>在字典上创建一个然后使用.ContainsKey来提供O(1).Contains性能.
然而,总是让我感到烦恼的是我实际上并不关心字典中的价值.
是否有比字典更好的数据结构来支持这种情况,我不关心实际值,只存在密钥?