2012-02-20 116 views
0

我需要编写哈希函数的帮助。我不太了解他们,但我需要为单词列表制作一个。我正在编写一个程序,用于查找出现在Word搜索“词典”中的Word搜索中的每个单词。例如,如果拼图的类别是“食物”,那么词典中的一些词可能是:苹果,胡萝卜,橙子等。我需要通过双重哈希和线性探测来完成这个工作,我认为我可以理解,但我不知道如何做一个好的哈希函数来做到这一点。任何人都可以帮助>Java哈希函数

+0

为什么你不能使用现有的散列表/地图? – Kent 2012-02-20 21:43:17

+1

这听起来像功课;如果是,请编辑您的问题以添加“作业”标签。 – ruakh 2012-02-20 21:44:40

+0

这看起来像作业。如果是这样,你可能只能使用内置的String哈希函数,这非常好。我想你可以专注于散列表本身。如果我对作业有误或被允许使用String哈希函数,请告诉我,我会尽力提供更多帮助。 – BlackVegetable 2012-02-20 21:45:10

回答

2

据我所知,你需要为一组单词建立一个散列函数,对吧?每个单词的简单顺序XORing(如果单词顺序很重要),hashCode()将为你做很好的工作。

如果不确定,请创建一个类,您需要为其构建散列函数并在Eclipse中为该类执行Source - Generate hashCode() and equals()命令。

+0

要检查您的冲突解决方案,请使用可靠的哈希函数,如映射到存储桶1的所有内容,然后在调试器中运行它。这样,你至少可以看到你的线性探测功能。像Alex发布的一个很棒的散列函数可能会掩盖你的想法,从你那里窃取一个学习机会,但很好地达到你的目标。 – BlackVegetable 2012-02-20 21:49:49