2011-08-25 155 views
-1

有人可以用简单的术语解释哈希码和哈希集的概念。哈希码和哈希集的概念

+2

@jeni:见[此](HTTP:// isagoksu.com/2009/development/java/what-is-hash-code/)有关Hashcode的一个很好的参考。 – Khan

回答

0

措施:如果你想提交的东西走了以后检索http://isagoksu.com/2009/development/java/what-is-hash-code/

,也可以是如果您以数字形式进行文件归档而不是通过长字母键更快。 hashCode是一种从长字符串或甚至任意字节数组中计算小(32位)摘要数字键的方法。数字键本身没有意义,用于计算它们的hashCode函数看起来有点疯狂。然而,当你去找东西的时候,你可以对你正在查找的长字母键进行相同的摘要计算,不管你使用的算法多么奇怪,你将计算相同的hashCode,并且能够看用它数字化。当然,总有两种不同的字符串具有相同的摘要hashCode的可能性。然而,即便如此,一切都不会丢失;它大大缩小了搜索范围,因此加快了搜索速度。 Hashtable更进一步,将hashCode进一步缩小到更小的数目,它可以用来直接索引数组,通常通过将其除以某个(理想的素数)数字并取其余部分。

HashSet的创建一个使用哈希表存储

我希望这有助于

+0

感谢所有回复。我了解hashcode用于识别一个对象,而h ashset是存储在哈希表中的哈希码的集合...是否正确 – jeni

+0

是的,根据定义,哈希码是唯一的,但取决于使用的算法,您可能会碰撞,只要记住这一点。 – Trefex

+0

非常感谢:-) – jeni

0

散列编码正在存储在类中的SATA和把他们放在一起在哈希集合。 (一种加密的地方)。我知道这是来自维基百科,但有很好的例子可以解释给你。

实施例(维基百科(Wiki Hash Code examples

public class Employee{ 
int  employeeId; 
String  name; 
Department dept; 

// other methods would be in here 

@Override 
public int hashCode() { 
    int hash = 1; 
    hash = hash * 17 + employeeId; 
    hash = hash * 31 + name.hashCode(); 
    hash = hash * 13 + (dept == null ? 0 : dept.hashCode()); 
    return hash; 
} 
} 

至于散列设置Oracle.com最好地描述它

Oracle - Hash Set

+0

你的例子有助于我理解这个概念...谢谢 – jeni