java - Why doesn't Object.hashCode() return the same value for seemingly identical objects -


कोड निम्नानुसार है:

  सार्वजनिक वर्ग मुख्य {सार्वजनिक स्थिर शून्य मुख्य (स्ट्रिंग) [] आर्ग्स) {छात्र एक = नए छात्र (10, "ओले"); विद्यार्थी बी = नए छात्र (10, "ओले"); Println (a.hashCode ()); Println (b.hashCode ()); }}  

और ऑब्जेक्ट इस तरह दिखता है:

  सार्वजनिक वर्ग छात्र {निजी इंट स्नैर; निजी स्ट्रिंग नाम; सार्वजनिक छात्र (इंट स्नआर, स्ट्रिंग नेम) {this.snr = snr; This.namn = namn; }}  

ये कोड चलते समय ये परिणाम होते हैं:

  57651960 441366923  

मैंने कुछ पढ़ा है Javadoc का, लेकिन मुझे पता नहीं क्यों, यह क्यों हो सकता है किसी को भी समझा सकता है? और परिणाम को समान बनाने के लिए मुझे क्या करना होगा? (यदि संभव है तो)

स्पष्टीकरण के लिए धन्यवाद :)! अब समझ आता है;)

आप ओवरराइड नहीं कर रहे हैं Object.hashCode () , इसलिए यह ऑब्जेक्ट पहचान के आधार पर मान लौटा रहा है।

से:

उतना ही उचित रूप से व्यावहारिक है, वर्ग ऑब्जेक्ट द्वारा परिभाषित हैश कोड विधि अलग-अलग पूर्णांक देता है विशिष्ट वस्तुओं के लिए (यह आम तौर पर ऑब्जेक्ट के आंतरिक पते को पूर्णांक में कनवर्ट करना द्वारा कार्यान्वित किया जाता है, लेकिन JavaTM प्रोग्रामिंग भाषा द्वारा इस कार्यान्वयन तकनीक की आवश्यकता नहीं है।)


Comments

Popular posts from this blog

import - Python ImportError: No module named wmi -

Editing Python Class in Shell and SQLAlchemy -

c# - MySQL Parameterized Select Query joining tables issue -