java - why does TreeSet sorts only unique values? -
दोस्तों, मुझे TreeSet
का उपयोग कर संपूर्ण डेटा प्राप्त करने में समस्या हो रही है। मैंने कुछ ही मानों पर TreeSet
सॉर्ट किया है।
यहां मेरा कोड है:
MyCars
वर्ग:
वर्ग MyCars लागू करता है Comparable & lt; MyCars & gt; {निजी स्ट्रिंग नंबर; निजी इंट साल मॉडेल; निजी डबल घोड़ा पावर; सार्वजनिक स्ट्रिंग getNumber () {रिटर्न नंबर; } सार्वजनिक शून्य सेटनंबर (स्ट्रिंग नंबर) {this.number = number; } सार्वजनिक प्राप्ति प्राप्त करेंयदरमॉडेल () {वापसी वर्षमॉडेल; } सार्वजनिक शून्य सेट वर्ष मॉडेल (इंट वर्ड मॉडेल) {this.yearModel = yearModel; } सार्वजनिक डबल प्राप्तहोर्सपीवर () {वापसी घोड़े पावर; } सार्वजनिक शून्य सेटहोर्स पावर (डबल घोड़े पावर) {this.horsePower = horsePower; } @ ओवरराइड पब्लिक इंट कंट्रास्ट टू (मायकार्स सी) {रिटर्न डबल-कॉपरेयर (यह हॉर्स पावर, सी। गोर हॉर्स पावर ()); }}
SortTest
वर्ग:
सार्वजनिक वर्ग SortTest {void GoForSort () {सेट करें डेटास्ट्रक्चर = नया वृक्षसेट (); मायकार्स सी 1 = नया मायकार्स (); c1.setNumber ( "SRT-Viper123"); c1.setYearModel (2013); c1.setHorsePower (450.00); मायकार्स सी 2 = नया मायकार्स (); c2.setNumber ( "शेवरलेट-Corvette901"); c2.setYearModel (2012); c2.setHorsePower (450.00); मायकेर्स सी 3 = नया मायकार्स (); c3.setNumber ( "फोर्ड-Mustang678"); c3.setYearModel (2014); c3.setHorsePower (455.00); dataStructure.add (C1); dataStructure.add (C2); dataStructure.add (सी 3); इटरेटर & LT; MyCars & gt; यह dataStructure.iterator () =; जबकि (यह hasNext ()) {MyCars c = it.next (); Println (c.getNumber () + "\ t" + c.getHorsePower () + "\ t" + c.getYearModel ()); }} सार्वजनिक स्थिर शून्य मुख्य (स्ट्रिंग [] आर्ग्स) {SortTest st = New SortTest (); st.GoForSort (); }}
जैसा कि आप देख सकते हैं मैंने घोड़े के आधार पर TreeSet
सॉर्ट किया है और मैंने घोड़े-शक्ति के लिए दो ऑब्जेक्ट्स को समान मूल्य दिया है।
यहां दिए गए आउटपुट हैं:
SRT-Viper123 450.0 2013 फोर्ड-मुस्टांग 678 455.0 2014 लेकिन मैं यह भी चाहता हूं कि शेवरले-कोर्वेट 9 01
इस आउटपुट के सेट में आने के लिए। मुझे यह क्यों नहीं मिल रहा है
क्या इसमें भी शामिल करने का कोई तरीका है? चूंकि मैंने पाया कि कोई समस्या नहीं थी जब मैं अपने संग्रह को ArrayList
पर बदलता हूं। क्या TreeSet
केवल अनन्य तत्वों को करता है?
क्या ऐसा करने के लिए कोई चाल है? TreeSet
...
आपके पास दो विकल्प हैं:
-
अपना
तुलना करें
भीसंख्या
औरकी तुलना करें प्रत्येक नोड पर संग्रहीत करें (सरणी या
सूची
) को संग्रहित करें - आम तौर पर एक। Li>
जब तक आपका तुलना करें
रिपोर्ट करता है कि दो आइटम समान हैं, उनमें से केवल एक सेट में दिखाई देगा।
Comments
Post a Comment