有人可以用简单的术语解释哈希码和哈希集的概念。
答案 0 :(得分:3)
Google是你的朋友:
http://en.wikipedia.org/wiki/Java_hashCode()
http://en.wikipedia.org/wiki/HashSet#Language_support
http://download.oracle.com/javase/6/docs/api/java/util/HashSet.html
答案 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最好地描述它。