Java Collection Framework Explained | Data Structures + Complete Hierarchy | Java Full Course #29
1:15:58

Java Collection Framework Explained | Data Structures + Complete Hierarchy | Java Full Course #29

Coder Army

5 chapters6 takeaways15 key terms5 questions

Overview

यह वीडियो जावा कलेक्शन फ्रेमवर्क का एक विस्तृत परिचय प्रदान करती है, जिसमें डेटा स्ट्रक्चर्स की आवश्यकता, एरे की सीमाओं और जावा द्वारा प्रदान किए जाने वाले विभिन्न कलेक्शन डेटा स्ट्रक्चर्स जैसे डायनामिक एरे (ArrayList), लिंक्ड लिस्ट, सेट (HashSet), स्टैक और क्यू का वर्णन किया गया है। यह बताती है कि प्रत्येक डेटा स्ट्रक्चर एक ट्रेड-ऑफ के साथ आता है और विशिष्ट उपयोग के मामलों के लिए सबसे उपयुक्त डेटा स्ट्रक्चर का चयन करना महत्वपूर्ण है। वीडियो यह भी बताती है कि इन डेटा स्ट्रक्चर्स को जावा में कैसे लागू किया जा सकता है और जावा के अंतर्निहित क्लासेस का उपयोग करके उन्हें कैसे इस्तेमाल किया जा सकता है।

How was this?

Save this permanently with flashcards, quizzes, and AI chat

Chapters

  • हम डेटा के साथ डील करते हैं और इसे स्टोर करने और क्वेरी करने के लिए डेटा स्ट्रक्चर्स की आवश्यकता होती है।
  • एरे एक डेटा स्ट्रक्चर है, लेकिन इसमें नए एलिमेंट जोड़ना आसान है (O(1)) जबकि सबसे बड़ा एलिमेंट खोजना मुश्किल (O(n)) है।
  • सॉर्टेड एरे में सबसे बड़ा एलिमेंट खोजना आसान (O(1)) है, लेकिन नया एलिमेंट जोड़ना मुश्किल (O(n)) हो जाता है।
  • हर डेटा स्ट्रक्चर एक ट्रेड-ऑफ होता है; कोई भी डेटा स्ट्रक्चर सभी उपयोग के मामलों के लिए सबसे अच्छा नहीं होता है।
यह समझना महत्वपूर्ण है कि डेटा को कुशलतापूर्वक स्टोर करने और उस पर क्वेरी करने के लिए डेटा स्ट्रक्चर्स क्यों आवश्यक हैं, क्योंकि यह कुशल प्रोग्रामिंग की नींव है।
एक नंबरों के एरे (जैसे 3, 7, 10, 1, 4, 12) का उपयोग करके यह दिखाना कि नए एलिमेंट जोड़ना आसान है लेकिन सबसे बड़ा एलिमेंट खोजना मुश्किल है, जबकि सॉर्टेड एरे में सबसे बड़ा एलिमेंट खोजना आसान है लेकिन नया एलिमेंट जोड़ना मुश्किल है।
  • जावा में सामान्य एरे का साइज फिक्स होता है, जिससे इंडेक्स आउट ऑफ बाउंड एक्सेप्शन आ सकती है।
  • डायनामिक एरे का साइज फिक्स नहीं होता; यह जरूरत पड़ने पर अपने आप बढ़ता है।
  • एक डायनामिक एरे को इंटरनली एक फिक्स-साइज एरे का उपयोग करके लागू किया जा सकता है, जिसे क्षमता पूरी होने पर डबल कर दिया जाता है और पुरानी वैल्यूज को नए एरे में कॉपी किया जाता है।
  • जावा में, ArrayList क्लास डायनामिक एरे की कार्यक्षमता प्रदान करती है।
ArrayList जैसी डायनामिक एरे का उपयोग करने से फिक्स्ड-साइज एरे की सीमाओं को दूर किया जा सकता है, जिससे डेटा को स्टोर करना और प्रबंधित करना अधिक लचीला हो जाता है।
एक फिक्स्ड-साइज एरे में 10 एलिमेंट्स जोड़ने के बाद 11वां एलिमेंट जोड़ने की कोशिश करने पर इंडेक्स आउट ऑफ बाउंड एक्सेप्शन आना, और फिर यह समझाना कि कैसे एक नया, बड़ा एरे बनाकर और पुरानी वैल्यूज को कॉपी करके डायनामिक एरे इस समस्या को हल करती है।
  • लिंक्ड लिस्ट डेटा को कंटीन्यूअस मेमोरी लोकेशन में स्टोर नहीं करती, बल्कि नोड्स का उपयोग करती है।
  • प्रत्येक नोड में डेटा और अगले नोड का रेफरेंस होता है, जो मेमोरी में कहीं भी स्थित हो सकता है।
  • लिंक्ड लिस्ट में इंसर्शन और डिलीशन बहुत कुशल (O(1)) होते हैं, खासकर जब एरे के बीच में या शुरुआत में ऑपरेशन करने हों, क्योंकि इसमें एलिमेंट्स को शिफ्ट करने की आवश्यकता नहीं होती है।
  • जावा में, LinkedList क्लास लिंक्ड लिस्ट डेटा स्ट्रक्चर प्रदान करती है।
लिंक्ड लिस्ट उन स्थितियों के लिए आदर्श है जहां बार-बार इंसर्शन और डिलीशन की आवश्यकता होती है, क्योंकि यह एरे-आधारित संरचनाओं की तुलना में अधिक कुशल होता है।
एक लिंक्ड लिस्ट में एक नया एलिमेंट (जैसे 8) को मौजूदा लिस्ट (जैसे 4 -> 5 -> 6) के बीच में इंसर्ट करने की प्रक्रिया को समझाना, जिसमें पुराने नोड (4) के रेफरेंस को नए नोड (8) पर पॉइंट करना और नए नोड (8) के रेफरेंस को अगले नोड (5) पर पॉइंट करना शामिल है।
  • सेट एक डेटा स्ट्रक्चर है जो डुप्लीकेट एलिमेंट्स को स्टोर नहीं करता है।
  • सेट में किसी एलिमेंट की उपस्थिति की जांच (contains) कांस्टेंट टाइम (O(1)) में की जा सकती है।
  • सेट को हैश कोड और मॉड्यूल ऑपरेटर का उपयोग करके एरे और लिंक्ड लिस्ट के संयोजन से लागू किया जा सकता है (चेनिंग)।
  • जावा में, HashSet और LinkedHashSet जैसी क्लासेस सेट की कार्यक्षमता प्रदान करती हैं।
सेट उन परिदृश्यों के लिए महत्वपूर्ण है जहां आपको केवल यूनिक एलिमेंट्स को स्टोर करने और कुशलतापूर्वक यह जांचने की आवश्यकता होती है कि कोई एलिमेंट मौजूद है या नहीं।
ईमेल आईडी को स्टोर करने का उदाहरण देना जहां डुप्लीकेट ईमेल आईडी की अनुमति नहीं है और यह जांचना कि क्या कोई विशेष ईमेल आईडी पहले से मौजूद है, यह समझाने के लिए कि कैसे हैश कोड और मॉड्यूल ऑपरेटर का उपयोग करके इसे कुशलतापूर्वक किया जा सकता है।
  • स्टैक एक लीफो (Last-In, First-Out) डेटा स्ट्रक्चर है, जहां सबसे हाल ही में जोड़ा गया एलिमेंट सबसे पहले हटाया जाता है।
  • क्यू एक फीफो (First-In, First-Out) डेटा स्ट्रक्चर है, जहां सबसे पहले जोड़ा गया एलिमेंट सबसे पहले हटाया जाता है।
  • स्टैक को एरे या लिंक्ड लिस्ट का उपयोग करके लागू किया जा सकता है, जिसमें इंसर्शन और डिलीशन एक ही तरफ से होते हैं।
  • क्यू को भी एरे या लिंक्ड लिस्ट का उपयोग करके लागू किया जा सकता है, जिसमें इंसर्शन एक तरफ से और डिलीशन दूसरी तरफ से होता है।
स्टैक और क्यू विशिष्ट ऑर्डरिंग आवश्यकताओं वाले कार्यों के लिए मौलिक डेटा स्ट्रक्चर्स हैं, जैसे फ़ंक्शन कॉल प्रबंधन (स्टैक) या कार्य शेड्यूलिंग (क्यू)।
प्लेटों के ढेर (स्टैक) का उदाहरण देना जहां सबसे ऊपर रखी प्लेट सबसे पहले उठाई जाती है, और एक लाइन (क्यू) का उदाहरण देना जहां सबसे पहले लाइन में लगने वाला व्यक्ति सबसे पहले सेवा प्राप्त करता है।

Key takeaways

  1. 1डेटा स्ट्रक्चर्स डेटा को कुशलतापूर्वक स्टोर करने, प्रबंधित करने और एक्सेस करने के लिए आवश्यक हैं।
  2. 2प्रत्येक डेटा स्ट्रक्चर के अपने फायदे और नुकसान (ट्रेड-ऑफ) होते हैं, इसलिए उपयोग के मामले के आधार पर सही डेटा स्ट्रक्चर चुनना महत्वपूर्ण है।
  3. 3ArrayList फिक्स्ड-साइज एरे की सीमाओं को दूर करता है, जबकि LinkedList कुशल इंसर्शन और डिलीशन प्रदान करता है।
  4. 4Set डुप्लीकेट को रोकता है और तेजी से एलिमेंट की उपस्थिति की जांच की अनुमति देता है।
  5. 5Stack (LIFO) और Queue (FIFO) विशिष्ट ऑर्डरिंग आवश्यकताओं के लिए महत्वपूर्ण हैं।
  6. 6जावा कलेक्शन फ्रेमवर्क इन डेटा स्ट्रक्चर्स के लिए अंतर्निहित, अनुकूलित कार्यान्वयन प्रदान करता है, जिससे डेवलपर्स को उन्हें स्वयं बनाने की आवश्यकता कम हो जाती है।

Key terms

Data StructuresArrayDynamic ArrayArrayListLinked ListNodeSetHashSetStackQueueLIFOFIFOTime ComplexityTrade-offHashing

Test your understanding

  1. 1डेटा स्ट्रक्चर्स की आवश्यकता क्यों पड़ती है और एरे की तुलना में लिंक्ड लिस्ट का क्या फायदा है?
  2. 2ArrayList और फिक्स्ड-साइज एरे के बीच मुख्य अंतर क्या हैं?
  3. 3सेट डेटा स्ट्रक्चर का उपयोग कब करना चाहिए और यह डुप्लीकेट वैल्यूज को कैसे हैंडल करता है?
  4. 4स्टैक (LIFO) और क्यू (FIFO) के बीच क्या अंतर है और उनके सामान्य उपयोग के मामले क्या हैं?
  5. 5जावा कलेक्शन फ्रेमवर्क का उपयोग करने से डेवलपर्स को क्या लाभ होता है?

Turn any lecture into study material

Paste a YouTube URL, PDF, or article. Get flashcards, quizzes, summaries, and AI chat — in seconds.

No credit card required