हैश मैप ठीक काम कर रहा है। सिर्फ इसलिए कि आप एक ही नाम के साथ दो नई वस्तुएं बनाते हैं, इसका मतलब यह नहीं है कि कंप्यूटर सोचता है कि वे एक ही वस्तु हैं।
निम्नलिखित का प्रयास करें:
man1 = new Man("John");
man2 = new Man("John");
if (man1 == man2) {
System.out.println("Equal");
} else {
System.out.println("Not equal");
}
आप मिल जाएगा "इसके बराबर नहीं" क्योंकि कंप्यूटर अगर वे वास्तव में एक ही वस्तु है, सिर्फ एक ही नाम नहीं देखने के लिए जाँच कर रहा है।
हर बार जब आप "नया" कीवर्ड का उपयोग कर रहे हैं, तो आप एक नई वस्तु घोषित कर रहे हैं और कंप्यूटर इसे एक अद्वितीय पता देता है।
इस प्रयास करें:
man1 = new Man("John");
HashMap<Man, Double> myList = new HashMap<>();
myList.put(man1, "5.00");
System.out.print.ln(myList.get(man1));
आप आप देखेंगे अब मिल "5.00" वापस क्योंकि आप वास्तव में यह सही वस्तु मानचित्र में महत्वपूर्ण है कि दे रहे हैं।
आपको मैन्युअल रूप से परिभाषित करने की आवश्यकता होगी कि आप कैसे निर्णय लेते हैं कि दो "पुरुष" बराबर हैं यदि आप इस तरह के व्यवहार को काम करना चाहते हैं। आप एक कुंजी के रूप में पूर्ण नाम का उपयोग करना बेहतर हो सकते हैं, क्योंकि यह आमतौर पर अद्वितीय होने वाला है, और आपके लिए लागू करने के लिए कम काम है।
चाहते हो सकता है प्राप्त करने की कोशिश करने के लिए? शायद काम कर सकते हैं .. –
@Eran nope। मैं यह कैसे कर सकता हूं? –
@RomaKarageorgievich शायद आपको 'हैश मैप' जावाडोक पढ़ना शुरू करना चाहिए। या इसे गूगल। – Eran