Mar*_*cel -3 c# hash performance hashset
我正在寻找整数列表与整数散列集之间的比较/性能考虑因素。这就是HashSet<T> 和 List<T> 的区别是什么?谈论T为整数。
我将有多达几千个整数,我想找出单个整数是否包含在这个集合中。
现在当然这对散列集大喊大叫,但我想知道散列在这里是否有益,因为它们只是开始时的整数。首先散列它们不会在这里增加不必要的开销吗?
或者换句话说:使用散列集是否有益,即使对于整数集?
散列一个整数非常便宜,你可以在该Int32.GetHashCode方法的源代码中看到:
// The absolute value of the int contained.
public override int GetHashCode()
{
return m_value;
}
Run Code Online (Sandbox Code Playgroud)
数字的散列是数字本身。没有比这更便宜的了。所以没有理由担心开销。将您的数字放入 a 中HashSet,享受以O(1)计算复杂度进行搜索的乐趣。