public class Contact
{
int i;
String name;
public Contact(int iVal, String nameVal)
{
i = iVal;
name = nameVal;
}
}
public class MultiMap
{
public static void main (String args[])
{
java.util.HashMap m = new java.util.HashMap();
Contact m1 = new Contact(1, "name");
Contact m2 = new Contact(1, "name");
m.put(m1, "first");
m.put(m2, "second");
System.out.println(m.get(m1));
System.out.println(m.get(m2));
}
}
आउटपुट है:वस्तुओं और बराबर होती है
first
second
यह कैसे "मिल" विधि से व्यवहार करता है? चूंकि एम 1 और एम 2 दोनों के समान मूल्य हैं और मैंने हैशकोड() को ओवरराइड नहीं किया है, ऑब्जेक्ट क्लास के बराबर() विधि को कॉल किया जाएगा?
क्या यह सही है?
- कोई hashCode विधि तो वहाँ के लिए यदि वस्तुओं एम 1 और एम 2 अलग मान हैं JVM देखने के लिए
- कोई बराबर होती विधि इसलिए वर्ग के बराबर (वस्तु अधिरोहित) शुरू हो जाती है और कोई रास्ता नहीं है दोनों वस्तुओं के रूप में m1 के मान को प्रतिस्थापित करने के बिना एम 2 के बिना उपरोक्त कोड अलग-अलग काम करता है।