जावा में ArrayList और वेक्टर के बीच अंतर
विषय
ArrayList और वेक्टर दोनों संग्रह फ्रेमवर्क पदानुक्रम के तहत कक्षाएं हैं। ArrayList और वेक्टर, दोनों का उपयोग वस्तुओं की एक गतिशील सरणी बनाने के लिए किया जाता है जहां सरणी आकार में आवश्यकतानुसार बढ़ सकती है। ArrayList को भेद करने वाले दो बुनियादी अंतर हैं और वेक्टर यह है कि वेक्टर उन लिगेसी कक्षाओं से संबंधित है जिन्हें बाद में संग्रह कक्षाओं का समर्थन करने के लिए पुनर्संगठित किया गया था, जबकि एक ArrayList एक मानक संग्रह वर्ग है। एक और महत्वपूर्ण अंतर यह है कि ArrayList दूसरी ओर गैर-सिंक्रनाइज़ है; वेक्टर सिंक्रनाइज़ किया गया है।
नीचे दिखाए गए कंपैरिजन चार्ट की मदद से कुछ अन्य अंतरों का अध्ययन करते हैं।
- तुलना चार्ट
- परिभाषा
- मुख्य अंतर
- समानताएँ
- निष्कर्ष
तुलना चार्ट
तुलना के लिए आधार | सारणी सूची | वेक्टर |
---|---|---|
बुनियादी | ArrayList वर्ग सिंक्रोनाइज़ नहीं किया गया है। | सदिश वर्ग समकालिक है। |
विरासत वर्ग | ArrayList एक मानक संग्रह वर्ग है। | वेक्टर एक विरासत वर्ग है, जो संग्रह वर्ग का समर्थन करने के लिए फिर से इंजीनियर है। |
वर्ग घोषणा | वर्ग ArrayList | कक्षा वेक्टर |
पुनः आबंटन | जब एक ArrayList निर्दिष्ट नहीं किया जाता है तो इसके आधे आकार में वृद्धि की जाती है। | जब निर्दिष्ट नहीं किया जाता है, तो एक वेक्टर अपने आकार को दोगुना करने के लिए बढ़ जाता है। |
प्रदर्शन | जैसे कि ArrayList unsynchronized है, यह वेक्टर की तुलना में अधिक तेजी से संचालित होता है। | जैसा कि वेक्टर सिंक्रनाइज़ किया गया है, यह ArrayList की तुलना में धीमी गति से संचालित होता है। |
गणन / इटरेटर | ArrayList ArrayList में संग्रहीत वस्तुओं को पार करने के लिए Iterator इंटरफ़ेस का उपयोग करता है। | वेक्टर एन्यूएरेशन का उपयोग करता है और साथ ही वेक्टर्स में संग्रहीत वस्तुओं को पार करने के लिए Iterator इंटरफ़ेस का उपयोग करता है। |
ArrayList की परिभाषा
ArrayList मानक संग्रह कक्षाओं की सूची से संबंधित है। वर्ग ArrayList के अंदर परिभाषित किया गया है java.util पैकेज, यह फैली हुई है AbstractList वर्ग जो एक मानक संग्रह वर्ग भी है, और यह लागू भी होता है सूची, संग्रह इंटरफेस में परिभाषित एक इंटरफ़ेस। जावा में, एक मानक सरणी हमेशा निश्चित लंबाई की होती है। इसका मतलब है कि एक बार बनाया; यह गतिशील रूप से विकसित या आकार में छोटा नहीं होता है। तो, आपको उस सरणी की लंबाई का पूर्व ज्ञान होना चाहिए जिसका आप उपयोग कर रहे हैं। लेकिन, कभी-कभी ऐसा हो सकता है कि आवश्यक लंबाई रनटाइम पर प्रकट होती है, इसलिए इस तरह की स्थिति को संभालने के लिए जावा ने ArrayList पेश किया।
ArrayList एक ऐसी सरणी के गतिशील निर्माण के लिए उपयोग किया जाता है जो वस्तुओं के संदर्भ रखती है। यह सरणी आवश्यकता के अनुसार आकार में बढ़ सकती है। वर्ग घोषणा इस प्रकार है:
वर्ग ArrayList यहाँ, E उन वस्तुओं के प्रकार को निर्दिष्ट करता है जिन्हें एक सरणी धारण करेगी। बनाई गई सरणी परिवर्तनीय लंबाई की है, और यह तब बढ़ जाती है और आकार में घट जाती है जब वस्तुओं को सूची से जोड़ा जाता है या हटा दिया जाता है। ArrayList सिंक्रनाइज़ नहीं है इसका मतलब है कि एक ही समय में एक से अधिक थ्रेड सरणी पर काम कर सकते हैं। उदाहरण के लिए, यदि एक थ्रेड ऐरे में ऑब्जेक्ट रेफरेंस जोड़ रहा है और दूसरा थ्रेड एक ही समय में उसी एरे से ऑब्जेक्ट रेफरेंस निकाल रहा है। ArrayList वर्ग का उपयोग कर एक गतिशील सरणी का निर्माण: सारणी सूची उपरोक्त कोड में, आप देख सकते हैं कि; मैंने स्ट्रिंग प्रकार की वस्तुओं की एक सरणी बनाई। मैंने ऐड () विधि का उपयोग करके कुछ वस्तुओं को सरणी S1 में जोड़ा, और बाद में हटाने () विधि का उपयोग करके कुछ ऑब्जेक्ट हटा दिए। यदि आप सरणी के प्रारंभिक आकार को निर्दिष्ट नहीं करते हैं तो आप इसका अवलोकन कर सकते हैं, यह do 0 'की लंबाई का होगा। जैसा कि आप देख सकते हैं कि सरणी बढ़ता है और आप तत्वों को जोड़ते और आकार में सिकोड़ते हैं। वेक्टर एक लेगेसी वर्ग है जिसे संग्रह फ्रेमवर्क पदानुक्रम में संग्रह वर्ग का समर्थन करने के लिए पुनर्संगठित किया गया है। वेक्टर क्लास को भी इसमें परिभाषित किया गया है java.util पैकेज, द्वारा बढ़ाया गया AbstractList वर्ग और द्वारा कार्यान्वित सूची इंटरफेस। सदिश वर्ग निम्नानुसार घोषित किया गया है: कक्षा वेक्टर यहाँ, E उस ऑब्जेक्ट के प्रकार को परिभाषित करता है जिसे किसी सरणी में संग्रहीत किया जाएगा। वेक्टर वर्ग का उपयोग करके बनाई गई एक सरणी परिवर्तनशील लंबाई की है। यदि वेतन वृद्धि निर्दिष्ट नहीं की जाती है तो यह इसका आकार दोगुना बढ़ा देता है। आइए वेक्टर का उपयोग करके सरणी के निर्माण को समझें। वेक्टर उपरोक्त कोड में आप देख सकते हैं कि, मैंने विशेष रूप से क्रमशः वेक्टर के निर्माता में आकार और वेतन वृद्धि का उल्लेख किया है, जबकि स्ट्रिंग ऑब्जेक्ट्स की सरणी की घोषणा की है। इसलिए, आप देख सकते हैं कि ऐरे की सीमा समाप्त होने के बाद, यह घोषणा करते समय कंस्ट्रक्टर को प्रदान किए गए मूल्य से बढ़ जाता है। मैं यह कहकर निष्कर्ष निकालता हूं कि ऐरेलेस्ट का उपयोग वेक्टर के उपयोग से बेहतर है क्योंकि यह तेजी से और बेहतर प्रदर्शन करता है।
वेक्टर की परिभाषा
समानता:
निष्कर्ष: