2011-03-18 12 views
7

मेरे पास एक असाइनमेंट है जहां मुझे पैराम्स (स्ट्रिंग बुक नूम, स्ट्रिंग बुक टाइटल, int qoh, डबल बुकप्रिस) के साथ BookInventory ऑब्जेक्ट्स की एक सरणीसूची बनाने की आवश्यकता है। जहां बुकनम एक पुस्तक का हाइफेनेटेड आईएसबीएन नंबर है। इस सरणी को बनाने के बाद, मुझे संग्रह वर्ग की सॉर्ट विधि का उपयोग करने की आवश्यकता है। मेरी इकाई BookInventory क्लास में, मुझे एक तुलना करने की आवश्यकता है() जो bookNum द्वारा सरणीसूची को सॉर्ट करना समाप्त कर देगा (जो एक स्ट्रिंग है)। मैं यह कैसे करु? यह मेरा पहला अनुभव है, और मुझे समझ में नहीं आता है। ले जाने के लिए इतना है कि आप अपने स्वयं के कस्टम जब आप एक ArrayList सॉर्ट compareTo प्रक्रिया स्वतः ही कहा जाता है thats लागू कर सकते हैं से तुलनीय लागू करने के लिए हैएक सार्वजनिक int तुलना करने के लिए लिखने के लिए() विधि जावा

public class BookInventory implements Comparable<BookInventory> { 

    // code 

    public int compareTo(BookInventory other){ 
    return bookTitle.compareTo(other.bookTitle); 
    } 

    //code 
} 

बात:

उत्तर

16

यह मिलना चाहिए आप शुरू कर दिया।

compareTo और आदेश के बारे में अधिक पढ़ने के लिए, बाहर की जाँच करें:

http://download.oracle.com/javase/tutorial/collections/interfaces/order.html

+0

पढ़ने किसी के लिए भी त्वरित ध्यान दें कि अधिभावी बराबरी के विपरीत, इनपुट यहां पैरामीटर ऑब्जेक्ट प्रकार का नहीं होना चाहिए। – anon58192932

1

आप एक documentation for the Collections वर्ग देखो, तो आप यह है कि यह दो sort mwethods लागू करता है देखेंगे। सूची के तत्वों की तुलना करने के लिए Comparator ऑब्जेक्ट के साथ कोई भी List किसी भी प्रकार का लेता है। दूसरा List किसी भी प्रकार की ऑब्जेक्ट लेता है जो Comparable लागू करता है। चूंकि compareTo को Comparable द्वारा परिभाषित किया गया है (जबकि Comparator को compare लागू करना होगा), जो आपको बताता है कि आपकी कक्षा को implements Comparable<BookInventory> के रूप में घोषित किया जाना चाहिए, जिसका अर्थ है कि इसमें compareTo विधि होनी चाहिए। आपकी विधि को क्या करना चाहिए इसके लिए documentation for Comparable.compareTo(T) देखें। उपयोगी होने के लिए आपको String विधि compareTo(String) मिलेगा।

1

तुलना करने के लिए() विधि का उपयोग दो वस्तुओं की तुलना करने के लिए किया जाता है जिनमें एकाधिक गुण होते हैं। यह इंगित करने के लिए एक पूर्णांक वापस करेगा कि तुलना की गई वस्तुओं में से कौन सा बड़ा है। यदि अधिक वस्तुओं की तुलना की जा रही है तो यह अधिक समझ में आता है जिसमें प्राकृतिक ऑर्डर होता है।

वापसी मूल्य:

  • 0 से कम -> इंगित करता है कि वस्तु से पहले वस्तु में पारित कर दिया है।
  • 0 से अधिक -> वस्तु है पारित कर दिया वस्तु
  • 0 के बराबर के बाद -> दो वस्तुओं एक ही स्तर पर कर रहे हैं
+1

"बराबर 9" -> "बराबर 0" –

+0

मेरे खराब हो जाता है। वसा उंगलियों टाइपिंग। अंतिम विकल्प "0 के बराबर" होना चाहिए। @ पॉल आशीर्वाद। धन्यवाद –

संबंधित मुद्दे