2013-05-29 74 views
4

如何從我的課程中的兩個字段生成一個hashCode?從多個字段生成hashCode?

例如,我想Pair類與相同的對象V到有相同的hashCode:

public class Pair<V> { 
    V from, to; 
} 

我應加倍哈希碼在一起嗎?添加他們?將它們與一個素數相乘?

+0

一起來看看如何[龍目島( http://projectlombok.org/features/EqualsAndHashCode.html)實現它可能會有所幫助 – soulcheck

+0

與此相關的SO上已有**噸**問題。有沒有不清楚的東西? –

回答

7

一種方式做到這一點是添加的第一個字段的哈希碼進行哈希第二場的代碼,再乘以一個小質數,像這樣:

public int hashCode() { 
    return 31 * from.hashCode() + to.hashCode(); 
} 
+3

這裏應該有括號嗎?似乎解釋不符合代碼。 – meijuh