कभी-कभी मुझे अपने कई इंस्टेंस सदस्यों के हैशकोड को जोड़कर ओबीजे की हैशकोड() विधि को कार्यान्वित करने की आवश्यकता होती है। उदाहरण के लिए, यदि संयोजन obj के सदस्यों को एक, b, और c है, मैं अक्सर ppl यह रूप मेंहैशकोड() को लागू करने का पसंदीदा तरीका क्या है?
int hashCode(){
return 31 * 31 * a.hashCode() + 31 * b.hashCode() + c.hashCode();
}
जहां इस जादुई संख्या 31 से आता है लागू करते हुए देखना? क्या यह 4-बाइट्स या सिर्फ एक प्रमुख संख्या की लंबाई है?
हैशकोड() को लागू करने का कोई अन्य पसंदीदा/मानक तरीका है?
इसी तरह (लेकिन आवश्यक रूप से डुप्लिकेट नहीं): http://stackoverflow.com/questions/3613102/why-use-a-prime-number-in-hashcode –
प्राइम 31 का उपयोग स्ट्रिंग.hashCode() में किया जाता है एक अच्छा प्रधान है क्योंकि कई अलग-अलग संभावित पात्र नहीं हैं, हालांकि मैं बड़े प्राइम का उपयोग करता हूं। "रोचक" प्राइम्स के लिए एक अच्छी साइट http://primes.utm.edu/curios/ –