equals()
विधि Object
कक्षा से सभी जावा संग्रह कक्षाओं के लिए उपलब्ध है। इस विधि को Comparator
इंटरफ़ेस में भी घोषित किया गया है, तो इस विधि को तुलनात्मक रूप से घोषित करने का उद्देश्य क्या है? किस मामले में इसका इस्तेमाल होता है और कैसे?तुलनित्र इंटरफेस में बराबर() विधि का उपयोग?
उत्तर
-मुझे घोषित तुलनाकारी एक और वस्तु (तर्क) की तुलना में है
तुलनाकारी में इस विधि घोषित करने के उद्देश्य क्या है?
मुझे लगता है कि इस तथ्य पर प्रकाश डाला के डिजाइनर की तरह है कि Comparator.equals()
किसी भी कक्षा कि इंटरफ़ेस को लागू पर कुछ additional requirements आरोपित करता है:
साथ ही, इस विधि
true
लौट सकते हैं केवल यदि निर्दिष्ट वस्तु भी एक है तुलनित्र और यह इस तुलनित्र के रूप में एक ही आदेश लागू करता है। इस प्रकार,comp1.equals(comp2)
का अर्थ है कि प्रत्येक ऑब्जेक्ट संदर्भo1
औरo2
के लिएsgn(comp1.compare(o1, o2))==sgn(comp2.compare(o1, o2))
।
विधि का उपयोग यह निर्धारित करने के लिए किया जा सकता है कि दो अलग तुलनाकर्ता एक ही आदेश को लागू करते हैं या नहीं।
नोट से
कि यह है हमेशा सुरक्षित Object.equals (वस्तु) को ओवरराइड करने के लिए नहीं। हालांकि, इस विधि को ओवरराइड करने से, कुछ मामलों में, प्रदर्शन को प्रोग्रामों को यह निर्धारित करने की अनुमति देकर दो अलग-अलग तुलनाकर्ता एक ही ऑर्डर लगा सकते हैं।
यह विचार केवल एक संग्रह को सॉर्ट करने की अनुमति देने में सक्षम होने के लिए सक्षम नहीं है जिसे पहले से ही किसी अन्य तुलनित्र द्वारा क्रमबद्ध किया गया है यदि आपको पता चलता है कि अंतिम परिणाम समान होगा।
आम तौर पर इसका बहुत कम उपयोग होता था, लेकिन जब बहुत बड़े संग्रह को सॉर्ट करना होता है तो यह ऐसा कुछ है जिसे आप देखना चाहते हैं।
यह ऑब्जेक्ट के बराबर विधि का एक अति-सवार रूप है जो आपको बताता है कि क्या दो वस्तुएं समान तुलनित्र प्रकार हैं।
मुझे लगता है कि मुख्य कारण यह स्पष्ट करना है कि equals
विधि Comparator
ही के परीक्षण के लिए है। जब आप इसके बारे में सोचते हैं तो यह स्पष्ट होता है, लेकिन क्या मैं कल्पना कर सकता हूं कि कुछ लोग equals(Object)
(किसी भी तरह) compare(T, T)
विधि से संबंधित रूप से संबंधित होने की उम्मीद कर सकते हैं।
यह कुछ आम-ज्ञान दिशानिर्देशों के दस्तावेज़ीकरण की अनुमति देता है जब दो तुलनाकर्ताओं को बराबर के रूप में देखा जा सकता है।
किसी भी तरह से, इंटरफेस में equals(Object)
विधि की उपस्थिति दस्तावेज उद्देश्यों के लिए है।
आपके प्रश्न के अनुसार मुझे लगता है कि स्ट्रिंग में कनवर्ट करने के बाद वस्तुओं की तुलना करने के लिए इसका उपयोग किया जाता है। ऑब्जेक्ट क्लास eqlas विधियों दोनों को चेक करें ऑब्जेक्ट eqls हैं या नहीं और प्रतिस्पर्धा विधि हैक ऑब्जेक्ट डेटा जैसे Hello.eqlas ("हैलो")
- 1. का प्रयोग तुलनित्र सेट
- 2. इंटरफेस में जेनिक्स का उपयोग
- 3. जावा तुलनित्र?
- 4. इंटरफेस
- 5. दो इंटरफेस एक ही विधि का नाम
- 6. कोहाना में इंटरफेस का उपयोग 3.1.3
- 7. तुलनात्मक रूप से सदस्य फ़ंक्शन का उपयोग करके सॉर्टिंग तुलनित्र
- 8. का उपयोग करते हुए कस्टम std :: सेट तुलनित्र
- 9. कस्टम सॉर्ट करने के लिए तुलनित्र का उपयोग
- 10. जावा तुलनित्र का सही तरीके से उपयोग कैसे करें?
- 11. इंटरफेस पर .getclass() का उपयोग
- 12. कीवर्ड और बराबर विधि का ओवरराइड "है"
- 13. रुपयेपेक बराबर विधि
- 14. ऑप्टिमाइज़िंग बराबर() विधि
- 15. क्या सी ++ में जावा बराबर विधि के बराबर है?
- 16. छँटाई स्ट्रिंग तुलनित्र
- 17. इंटरफेस, एकाधिक विरासत बनाम इंटरफेस का उपयोग क्यों करें, इंटरफेस के लाभ?
- 18. सी # इंटरफेस का उपयोग कैसे करें
- 19. जावा बराबर बयान 'का उपयोग'
- 20. बराबर विधि को ओवरराइड करना
- 21. बराबर विधि की संक्रमणीय प्रकृति
- 22. बराबर विधि कार्यान्वयन सहायक (सी #)
- 23. जावा ओवरराइड ऑब्जेक्ट बराबर() विधि
- 24. रिक्त इंटरफेस का उपयोग खराब डिजाइन है?
- 25. जावा का उपयोग [इंटरफेस/सार कक्षाएं]
- 26. क्या इंटरफेस को स्ट्रिंग विधि है?
- 27. निर्भरता इंजेक्शन और इंटरफेस का उपयोग कर?
- 28. इंटरफेस के संदर्भ में इंटरफेस
- 29. जावा दो इंटरफेस ओवरराइडिंग, विधि नामों का संघर्ष
- 30. प्रतिबिंब का उपयोग कर वास्तविक विधि हस्ताक्षर