2011-03-27 16 views
6

मैं जावा में नया हूं।जावा वेक्टर: स्पष्ट बनाम निकालें सभी क्रियाएँ विधि

वेक्टरों के लिए अधिक कुशल है - स्पष्ट() या निकालेंअलेमेंट्स()। मुझे लगता है कि हटाए गए सभी निष्कर्षों से यह अपरिवर्तित क्षमता छोड़ देता है (स्मृति जारी नहीं करता है) जबकि स्पष्ट() स्मृति को रिलीज़ करता है। आवेदन के आधार पर, या तो वांछनीय हो सकता है।

मैं कुछ इनपुट की सराहना करता हूं। धन्यवाद।

+2

'वेरेक्टर' के रूप में 'एरेलेस्टिस्ट' का उपयोग करने पर विचार करें, पुराना स्कूल है - केवल पुरानी पाठ्य पुस्तकों को पढ़ने वाले लोगों द्वारा उपयोग किया जाता है। –

+0

सहमत .. मैंने और अधिक शोध किया और स्विच किया है। :) – Paul

उत्तर

9

JavaDoc प्रति .removeAllElements() विधि के बारे में।

"यह पद्धति स्पष्ट विधि (जो सूची इंटरफ़ेस का हिस्सा है) करने के लिए कार्यक्षमता में समान है।"

7

Vector जावा 1.1 में था, और जावा 1.4 के बाद से नए Collection API प्रकट हुई है, समारोह स्पष्ट() के साथ एक सामान्य List इंटरफेस को परिभाषित।

स्पष्ट() का उपयोग करें, क्योंकि यह आधुनिक एपीआई है। दोनों कार्य बराबर हैं।

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

2

जब आप दक्षता को लेकर चिंतित हैं (और वहाँ काफी एक मौका है कि आप गलत कारणों के लिए कर रहे हैं नहीं है), Vector बिल्कुल का उपयोग नहीं करते, लेकिन (जैसे ArrayList होता है) एक List कार्यान्वयन का उपयोग करें। यदि आप इसके आंतरिक सिंक्रनाइज़ेशन (और इसके बारे में मेरे संदेह हैं) के कारण Vector का उपयोग कर रहे हैं, तो इसके बजाय synchronizedList का उपयोग करें।

इसके अलावा, Vector.clear() बस Vector.removeAllElements() पर कॉल करता है, इसलिए कोई कार्यात्मक अंतर नहीं है, Vector.clear() का उपयोग करते समय केवल एक और फ़ंक्शन कॉल करें। ऐसा कहा जा रहा है कि, यदि आपको Vector का उपयोग करना है, तो Vector.clear() पर कॉल करें क्योंकि यह अधिक आधुनिक Collection इंटरफ़ेस का पालन करता है और एक स्पष्ट इरादा बताता है।

+0

इसे इंगित करने के लिए धन्यवाद। जब मैं एक सी ++ एसटीएल पृष्ठभूमि से आया था तो बस वेक्टर का उपयोग कर रहा था। मैं सूची और अधिक शोध करेंगे। – Paul

1
Vector.removeAllElements() के लिए

JavaDoc में के रूप में:

इस वेक्टर से सभी घटकों को निकालता है और शून्य करने के लिए अपने आकार निर्धारित करता है। यह विधि स्पष्ट() विधि

कार्यक्षमता में समान होता है तो वे समान हैं। clear() नए जावा संग्रह इंटरफ़ेस के अनुपालन के कारण बेहतर है।

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