आपकी जगह में मैं अपनी कक्षा तैयार करूंगा। जब तक आप HashMap
का उपयोग करके केवल दो वस्तुओं के सेट में रूचि रखते हैं, HashSet
(जो संयोगवश, HashMap
आंतरिक रूप से वैसे भी उपयोग करता है) या मनमाने ढंग से cardinality के सेट के लिए डिज़ाइन की गई कोई अन्य कक्षा संसाधनों की बर्बादी है और अनियंत्रित जटिलता को जोड़ती है।
उचित equals()
और hashCode()
कार्यान्वयन के साथ बस अपनी कक्षा बनाएं। ऑपरेशन, या Set
इंटरफ़ेस के हिस्सों को कार्यान्वित करने के साथ, यह भी समझ में आ सकता है।
एक महत्वपूर्ण नोट: सुनिश्चित करें कि आप दस्तावेज़ अपने वर्ग बड़े पैमाने पर - कम से कम है कि क्या equals()
एक पहचान या निहित वस्तुओं के लिए एक समानता तुलना करता है, और एक null
निहित संदर्भ का अर्थ क्या है निर्दिष्ट ...
किसी भी प्रकार के 'अनियंत्रित पेरिस' के कंटेनर को लिखने का आपका कारण क्या है? –
संभव डुप्लिकेट [जावा में सी ++ जोड़े के बराबर क्या है?] (Http://stackoverflow.com/questions/156275/what-is-the-equivalent-of-the-c-pairl-r-in -जावा) –
@AndrewLogvinov आप उदाहरण के लिए unordered ग्राफ के किनारों पर विचार कर सकते हैं। 'एज (v1, v2)' एज (v2, v1) 'के बराबर है। – Michael