जब आपकी कक्षा Comparable लागू करती है, तो compareTo
कक्षा की विधि उस वस्तु के "प्राकृतिक" क्रम को परिभाषित कर रही है। उस विधि पर अन्य तरीकों के अनुरूप होने के लिए यह विधि संविदात्मक रूप से बाध्य होती है (हालांकि मांग नहीं की जाती है), जैसे कि .equals()
तुलना सही होने पर ऑब्जेक्ट्स के लिए 0 को हमेशा वापस किया जाना चाहिए।
ए Comparator दो वस्तुओं की तुलना करने की अपनी परिभाषा है, और वस्तुओं की तुलना करने के लिए इसका उपयोग किया जा सकता है जो प्राकृतिक क्रम के साथ संरेखित नहीं हो सकता है।
उदाहरण के लिए, स्ट्रिंग्स आमतौर पर वर्णानुक्रम से तुलना की जाती हैं। इस प्रकार "a".compareTo("b")
वर्णानुक्रम तुलना का उपयोग करेगा। यदि आप लंबाई पर स्ट्रिंग्स की तुलना करना चाहते हैं, तो आपको एक कस्टम तुलनित्र लिखना होगा।
संक्षेप में, इसमें कोई अंतर नहीं है। वे दोनों समान साधनों के लिए समाप्त होते हैं। सामान्य रूप से प्राकृतिक आदेश के लिए तुलनीय लागू करने के लिए, (प्राकृतिक आदेश परिभाषा स्पष्ट रूप से व्याख्या के लिए खुला है), और अन्य सॉर्टिंग या तुलना आवश्यकताओं के लिए एक तुलनित्र लिखें।
http://grdurand.com/static/presentation_four/comparable.html –
इसके अलावा: [तुलनात्मक और तुलनात्मक का उपयोग करने के लिए] (http://stackoverflow.com/q/2266827/642706)। –
उत्कृष्ट उदाहरण लिंक। सरल और स्पष्ट। पढ़ो – Androidster