因此,我已經閱讀了幾個與hashcode的實現和使用XOR操作符的建議有關的答案。 (例如,Why are XOR often used in java hashCode() but another bitwise operators are used rarely?)。由Eclipse生成的Hashcode
當我使用Eclipse來生成散列碼功能,其中field
是一個對象,timestamp
長,輸出的是:
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result
+ field == null) ? 0 : field.hashCode());
return result;
}
沒有任何理由不使用XOR運算符像下面?
result = prime * result + (int) (timestamp^(timestamp >>> 32));
我在這裏看到一個異或'prime * result +(int)(timestamp ^(timestamp >>> 32))'...... –
@Heuster這是他的編輯錯過。其實Eclipse只創建這一行'result = prime * result + field == null)? 0:field.hashCode());' – Jayamohan