Collectionऔर Listजावा में क्या अंतर है ? मुझे कब उपयोग करना चाहिए?
Collectionऔर Listजावा में क्या अंतर है ? मुझे कब उपयोग करना चाहिए?
जवाबों:
सबसे पहले: a Listएक है Collection। यह एक विशेष है Collection, हालांकि।
ए Collectionसिर्फ इतना है: वस्तुओं का एक संग्रह। आप सामान जोड़ सकते हैं, सामान हटा सकते हैं, सामान पर पुनरावृति कर सकते हैं और पूछ सकते हैं कि सामान कितना है।
A Listइसमें सामान के परिभाषित अनुक्रम के बारे में जानकारी जोड़ता है: आप तत्व n पर स्थिति n प्राप्त कर सकते हैं , आप स्थिति n पर एक तत्व जोड़ सकते हैं , आप स्थिति n पर तत्व निकाल सकते हैं ।
एक में Collectionआप ऐसा नहीं कर सकते: "इस संग्रह में 5 वीं तत्व" परिभाषित नहीं है, क्योंकि कोई परिभाषित आदेश है वहाँ।
अन्य विशिष्ट संग्रह भी हैं, उदाहरण के लिए, Setजो इस सुविधा को जोड़ता है कि इसमें दो बार एक ही तत्व नहीं होगा।
Collectionजावा कलेक्शन पदानुक्रम के लिए रूट इंटरफ़ेस है। Listएक उप इंटरफ़ेस है जो एक ऑर्डर किए गए संग्रह को परिभाषित करता है, अन्य उप इंटरफेस हैं Queueजो आमतौर पर प्रसंस्करण के लिए तैयार तत्वों को संग्रहीत करेंगे (जैसे स्टैक )।
निम्नलिखित आरेख विभिन्न जावा संग्रह प्रकारों के बीच के संबंधों को प्रदर्शित करता है:
Mapहै कि एक नहीं है Collection।
जावा एपीआई इसका जवाब देने के लिए सबसे अच्छा है
संग्रह
संग्रह पदानुक्रम में रूट इंटरफ़ेस। एक संग्रह वस्तुओं के एक समूह का प्रतिनिधित्व करता है, जिसे इसके तत्वों के रूप में जाना जाता है। कुछ संग्रह डुप्लिकेट तत्वों और दूसरों को अनुमति नहीं देते हैं। कुछ को आदेश दिया जाता है और अन्य को अनियंत्रित किया जाता है। JDK इस इंटरफ़ेस का कोई प्रत्यक्ष कार्यान्वयन प्रदान नहीं करता है: यह सेट और सूची जैसे अधिक विशिष्ट उप-केंद्रों के कार्यान्वयन प्रदान करता है। यह इंटरफ़ेस आमतौर पर संग्रह को पास करने और उन्हें हेरफेर करने के लिए उपयोग किया जाता है जहां अधिकतम सामान्यता वांछित है।
सूची (संग्रह का विस्तार)
एक आदेशित संग्रह (जिसे एक अनुक्रम के रूप में भी जाना जाता है)। इस इंटरफ़ेस के उपयोगकर्ता का सटीक नियंत्रण है कि सूची में प्रत्येक तत्व कहां डाला गया है। उपयोगकर्ता अपने पूर्णांक सूचकांक (सूची में स्थिति) द्वारा तत्वों तक पहुंच सकता है, और सूची में तत्वों की खोज कर सकता है।
सेट के विपरीत, सूचियाँ आमतौर पर डुप्लिकेट तत्वों की अनुमति देती हैं। औपचारिक रूप से, सूचियाँ आमतौर पर e1 और e2 तत्वों के जोड़े की अनुमति देती हैं जैसे कि e1.equals (e2), और वे आमतौर पर कई अशक्त तत्वों को अनुमति देते हैं यदि वे सभी शून्य तत्वों की अनुमति देते हैं। यह अकल्पनीय नहीं है कि कोई ऐसी सूची लागू करने की इच्छा कर सकता है जो डुप्लिकेट को प्रतिबंधित करती है, जब उपयोगकर्ता उन्हें डालने का प्रयास करता है, तो रनटाइम अपवादों को फेंकने से, लेकिन हम इस उपयोग के दुर्लभ होने की उम्मीद करते हैं।
संग्रह एक उच्च-स्तरीय इंटरफ़ेस है जो जावा ऑब्जेक्ट्स का वर्णन करता है जिसमें अन्य वस्तुओं के संग्रह हो सकते हैं। यह इस बारे में बहुत विशिष्ट नहीं है कि वे कैसे एक्सेस किए जाते हैं, क्या एक ही ऑब्जेक्ट की कई प्रतियां एक ही संग्रह में मौजूद हो सकती हैं, या क्या ऑर्डर महत्वपूर्ण है। सूची विशेष रूप से वस्तुओं का एक ऑर्डर किया गया संग्रह है। यदि आप किसी विशेष क्रम में वस्तुओं को एक सूची में रखते हैं, तो वे उसी क्रम में रहेंगे।
और यह निर्णय लेना कि इन दो इंटरफेस का उपयोग करना कहां है यह तय करने की तुलना में बहुत कम महत्वपूर्ण है कि आप किस ठोस कार्यान्वयन का उपयोग करते हैं। यह आपके कार्यक्रम के समय और स्थान के प्रदर्शन के लिए निहितार्थ होगा। उदाहरण के लिए, यदि आप एक सूची चाहते हैं, तो आप एक ArrayList या LinkedList का उपयोग कर सकते हैं, जिनमें से प्रत्येक में आवेदन के लिए निहितार्थ होने वाले हैं। अन्य संग्रह प्रकारों (जैसे सेट) के लिए, इसी तरह के विचार लागू होते हैं।