假設散列表是一個索引爲0到HASHSIZE-1的數組。該函數返回正確範圍內的值,並且不會生成任何運行時錯誤。假設在String中傳入的字符至少有2個字符。爲什麼它是一個糟糕的散列函數?爲什麼給定的散列函數是一個糟糕的散列函數?
public static int hash(String key) {
return (key.charAt(0)
+ key.charAt(1)
+ key.charAt(key.length()-1) % HASHSIZE;
}
看起來會有很多碰撞,這很糟糕。 – Carcigenicate
檢查分配 –
它似乎也忽略了大部分字符串的內容,這是沒用的。 – Carcigenicate