2010-01-15 18 views
20

मैं वैक्टर के लिए जावा एपीआई में कोई सॉर्टिंग फ़ंक्शन नहीं ढूंढ सकता। Collections.sort केवल List<T> के लिए है और Vector<T> के लिए नहीं है।वेक्टर को सॉर्ट करने के लिए किस फ़ंक्शन का उपयोग किया जा सकता है?

मैं अपना खुद का सॉर्टिंग फ़ंक्शन लिखना नहीं चाहता क्योंकि मुझे लगता है कि जावा को इसे लागू करना चाहिए।

class ClassName implements Comparator<ClassName> .. 
ClassName cn = ..; 
sort(cn); 

उत्तर

27

API docs के अनुसार, Vector बस List लागू करता है, इसलिए मैं समस्याओं को हल नहीं करता हूं।

Vector vector = new Vector(); 

बजाय इंटरफ़ेस aginst यह घोषित करने (जो माना जाता है अच्छा अभ्यास):: हो सकता है आपके भ्रम है क्योंकि आप पुराने जावा 1.0 शैली अनुसार Vector घोषित कारण होता था

List list = new Vector(); 

आप इस प्रकार कर सकते हैं बस बाहरी नियंत्रक ऑर्डरिंग व्यवहार को परिभाषित करने के लिए डिफ़ॉल्ट ऑर्डरिंग व्यवहार और/या Comparator को परिभाषित करने के लिए संग्रह को क्रमबद्ध करने के लिए Collections#sort() का उपयोग करें, Comparable

ऑब्जेक्ट्स ऑर्डर करने के बारे में Sun tutorial यहां है।

यहां पूर्ण कोड उदाहरणों के साथ एक और SO answer है।

उसने कहा, आप अभी भी विरासतVector कक्षा में क्यों चिपके हुए हैं? यदि आप कर सकते हैं, तो बस बेहतर ArrayList द्वारा प्रतिस्थापित करें जिसे एक दशक पहले Vector के प्रतिस्थापन के रूप में डिज़ाइन किया गया था।

15

वेक्टर लागू करता सूची है, तो Collections.sort काम करेगा:

मैं की तरह कुछ के लिए देख रहा हूँ।

4

Vector कक्षा के लिए जावा एपीआई विशिष्टता के अनुसार, यह इंटरफ़ेस लागू करता है जिसे Collections.sort विधि का उपयोग करने के लिए आवश्यक है।

इसके अलावा, एक नोट के रूप में, सबसे Vector वर्ग का उपयोग करता है के लिए इस तरह के रूप में ArrayList जावा संग्रह फ्रेमवर्क में List कार्यान्वयन, में से एक का उपयोग करके बदला जा सकता है। Vector वर्ग सिंक्रनाइज़ किया गया है, इसलिए जब तक सिंक्रनाइज़ पहुंच के लिए वास्तविक आवश्यकता न हो, तब तक किसी अन्य List कार्यान्वयन का उपयोग करना चाहिए।

1

Collections.sort (nameOfTheVectorToBeSorted) है; इसे अपने वेक्टर पर आज़माएं, जो क्रमबद्ध हो जाएगा।

0

Collections.sort(vector_name)

यह जगह में वेक्टर सॉर्ट ताकि आप वापस वेक्टर को उपरोक्त आदेश का परिणाम आवंटित करने के लिए की जरूरत नहीं है जाएगा।

यह काम करता है क्योंकि वेक्टर सूची के कार्यान्वयन हैं।

1

अपनी कक्षा में implements Comparable<> जोड़ना भूल मत करो:

public class XXXX 
    implements Comparable<XXXX> { 

} 

और अपने वेक्टर में संग्रहीत ऑब्जेक्ट प्रकार के अपनी कक्षा में compareTo() को फिर से परिभाषित करने के लिए।

मुझे यह समस्या भी मिली, एक्लिप्स आईडीई मुझे बता रहा था कि Collection.sort() केवल List<T> के लिए था। यह तब तक काम नहीं कर सका जब तक मैंने जो कहा वह मैंने नहीं किया।

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

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