我正在寻找整数列表与整数哈希集之间的比较/性能考虑因素。这就是What is the difference between HashSet<T> and List<T>?所讨论的T
作为整数。
我将拥有多达数千个整数,并且我想找出单个整数是否包含在此集合中。
现在当然会为哈希集尖叫,但我想知道哈希在这里是否有益,因为它们只是以整数开头。首先对它们进行哈希处理不会在此处添加不必要的开销吗?
或者换句话说:即使对于整数集,使用哈希集也有好处吗?
如在Int32.GetHashCode
方法的源代码中所见,散列整数非常便宜:
Int32.GetHashCode
数字的哈希是数字本身。没有比这便宜的了。因此,没有理由担心开销。将您的数字放在// The absolute value of the int contained.
public override int GetHashCode()
{
return m_value;
}
中,并喜欢以HashSet
计算复杂度进行搜索。