哈希码和哈希集的概念

时间:2011-08-25 10:59:31

标签: java

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

3 个答案:

答案 0 :(得分:3)

答案 1 :(得分:0)

取自:http://isagoksu.com/2009/development/java/what-is-hash-code/

如果你想提交一些东西供以后检索,如果你用数字而不是长字母键来提交它会更快。 hashCode是一种从长字符串甚至任意字节块计算小(32位)摘要数字键的方法。数字键本身没有意义,用于计算它们的hashCode函数看起来有点疯狂。但是,当你去寻找某些东西时,你可以对你正在寻找的长字母键进行相同的摘要计算,无论你使用多么奇怪的算法,你都会计算相同的hashCode,并且能够看到用它数字化。当然,总有可能两个不同的字符串将具有相同的摘要hashCode。然而,即便如此,一切都不会丢失;它大大缩小了搜索范围,从而加速了搜索速度。 Hashtable更进了一步,将hashCode进一步缩小到一个甚至更小的数字,它可以用来直接索引一个数组,通常将它除以一些(理想的素数)数并取余数。

HashSet 创建一个使用哈希表进行存储的集合

我希望这会有所帮助

答案 2 :(得分: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