Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

जावा में पारंपरिक कलेक्शंस और समवर्ती कलेक्शंस के बीच अंतर


जावा में जैसा कि हम जानते हैं कि कलेक्शंस सबसे महत्वपूर्ण अवधारणाओं में से एक है जो जावा को अपने आप में एक शक्तिशाली भाषा बनाता है। यह केवल जावा में कलेक्शंस का समर्थन है जो इसे किसी भी प्रकार के डेटा को सुविधाजनक और कुशल तरीके से समर्थन करने के साथ-साथ उन पर संभावित CRUD संचालन करने की अनुमति देता है।

लेकिन उसी चरण में जब कलेक्शंस मल्टी-थ्रेडिंग के संपर्क में आते हैं तो उनका प्रदर्शन कुछ हद तक कम हो जाता है क्योंकि कहीं न कहीं कलेक्शंस में मल्टी-थ्रेडिंग वातावरण का समर्थन करने की कमी होती है। इस सीमा को दूर करने के लिए जावा Concurrent Collections पेश करता है जो न केवल मल्टी-थ्रेडिंग वातावरण की सीमा को दूर करता है बल्कि जावा को मल्टीपल थ्रेड्स डेटा के साथ प्रदर्शन करने में भी सक्षम बनाता है।

पारंपरिक कलेक्शंस और समवर्ती कलेक्शंस के बीच निम्नलिखित महत्वपूर्ण अंतर हैं।

क्र. सं. मुख्य बिंदु पारंपरिक कलेक्शंस समवर्ती कलेक्शंस
1 थ्रेड सुरक्षा जावा कलेक्शंस में अधिकांश क्लासिक क्लास जैसे ArrayList, LinkedList, HashMap आदि सिंक्रनाइज़ नहीं हैं और मल्टी-थ्रेडिंग वातावरण में थ्रेड-सेफ नहीं हैं। दूसरी ओर जावा समवर्ती कलेक्शंस में उन्हीं क्लास को सिंक्रनाइज़ेशन के साथ कार्यान्वित करता है जो न केवल इन क्लास को सिंक्रनाइज़ बनाता है बल्कि प्रकृति में थ्रेड-सेफ भी बनाता है।
2 लॉकिंग मैकेनिज्म पारंपरिक कलेक्शंस में कुछ सिंक्रनाइज़्ड क्लास भी हैं जैसे Vector और Stack लेकिन ये क्लास पूरे कलेक्शन पर लॉक का उपयोग करते हैं जो प्रदर्शन और निष्पादन की गति को कम करता है। दूसरी ओर समवर्ती कलेक्शंस आंशिक लॉकिंग की अवधारणा पेश करते हैं जहां यह मल्टी-थ्रेडिंग वातावरण में कलेक्शन के केवल भाग को लॉक करता है जो ऐसे वातावरण में प्रदर्शन और कलेक्शंस की गति में सुधार करता है।
3 रनटाइम अपवाद पारंपरिक कलेक्शंस के मामले में यदि हम कलेक्शन पुनरावृत्ति के दौरान अलग थ्रेड के माध्यम से कलेक्शन को संशोधित करने का प्रयास करते हैं तो हमें ConcurrentModificationException रनटाइम अपवाद मिलता है। दूसरी ओर समवर्ती कलेक्शंस के साथ काम करने पर ऐसा अपवाद नहीं मिलेगा यानी समवर्ती कलेक्शंस अपनी पुनरावृत्ति के दौरान कलेक्शन में संशोधन की अनुमति देते हैं।
4 वरीयता ऊपर बताए गए कारणों से पारंपरिक कलेक्शंस मल्टी-थ्रेडिंग वातावरण में पसंद नहीं किए जाते हैं। दूसरी ओर समवर्ती कलेक्शंस मुख्य रूप से मल्टी-थ्रेडिंग वातावरण में पसंद किए जाते हैं।
5 बाजार में पेश किया गया पारंपरिक कलेक्शंस जावा में लिगेसी कलेक्शन के प्रकार हैं और समवर्ती कलेक्शंस से पहले पेश किए गए हैं। जबकि समवर्ती कलेक्शंस JDK 1.5 में पेश किए गए हैं यानी पारंपरिक कलेक्शंस के बाद पेश किए गए हैं।

  1. - जावा में Iterator और Enumeration के बीच अंतर

    Iterator और Enumeration दोनों कलेक्शन से एलिमेंट्स को ट्रैवर्स और एक्सेस करने के लिए कर्सर हैं। वे दोनों कलेक्शन फ्रेमवर्क से संबंधित हैं। Enumeration JDK 1.0 में जोड़ा गया था और Iterator JDK 1.2 वर्जन में कलेक्शन फ्रेमवर्क में जोड़ा गया। Enumeration कलेक्शन में स्ट्रक्चरल चेंज नहीं कर सकता क्योंकि

  1. - Java संग्रह में next() और hasNext() में अंतर

    Java संग्रह ऑब्जेक्ट्स के तत्वों को पुनर्प्राप्त करने के लिए Iterator और ListIterator क्लास प्रदान करता है। hasNext() विधि hasNext() विधि इन इंटरफेस की true लौटाती है यदि संग्रह ऑब्जेक्ट में अगला तत्व है अन्यथा यह false लौटाती है। उदाहरण import java.util.ArrayList; import java.util.Iterator; public

  1. - Java में ArrayList और HashSet के बीच अंतर

    HashSet और ArrayList दोनों Java कलेक्शन फ्रेमवर्क के सबसे महत्वपूर्ण क्लासेस में से कुछ हैं।ArrayList और HashSet के बीच महत्वपूर्ण अंतर निम्नलिखित हैं।क्रमांकमुख्य बिंदुArrayListHashSet1कार्यान्वयनArrayList लिस्ट इंटरफेस का कार्यान्वयन है।दूसरी ओर HashSet सेट इंटरफेस का कार्यान्वयन है।2आंतरिक कार्या