2012-02-20 156 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