我只是不能想出比這更好的解決方案。如何哈希長整型ID是安全的?
簡單的例子:我吃飯。每餐都有描述,但是有不同的語言。這就是爲什麼MealDescription
由主鍵(MealId, LanguageId)
組成。到現在爲止還挺好。
This guide這裏告訴我,我必須實現equals()
和hashCode()
但它是安全的做法是這樣的:
@Override
public int hashCode() {
return (int) mealId.hashCode() + languageId.hashCode();
}
如果mealId
和languageId
是Long
類型其實很喜歡他們必須是因爲它們是IDS?
我指的是該指南不相同:
那麼請問該怎麼工作呢?
爲什麼它會不安全? –
http://stackoverflow.com/questions/4045063/how-should-i-map-long-to-int-in-hashcode – copeg
有很多散列衝突的唯一的大事將是對性能的影響,而不是得到O(1)的平均情況,你會得到O(n) - 最壞的情況。 – guilhebl