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

जावा प्रोग्रामिंग में ArrayList और CopyOnWriteArrayList के बीच अंतर।

ArrayList और CopyOnWriteArrayList दोनों जावा में सूची इंटरफ़ेस का कार्यान्वयन हैं। लेकिन कुछ अंतर भी हैं।

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

<वें शैली="पाठ्य-संरेखण:केंद्र;">ऐरेलिस्ट <वें शैली ="पाठ-संरेखण:केंद्र;">CopyOnWriteArrayList
वरिष्ठ। नहीं. कुंजी
1 सिंक्रनाइज़ेशन ArrayList प्रकृति में सिंक्रनाइज़ नहीं है। CopyOnWriteArrayList दूसरी ओर प्रकृति में सिंक्रनाइज़ है यानी एक समय में केवल एक थ्रेड ऑब्जेक्ट तक पहुंच सकता है।
2 प्रदर्शन ArrayList तेज है क्योंकि इसके संचालन में कोई सिंक्रनाइज़ेशन नहीं है। सिंक्रनाइज़ेशन, CopyOnWriteArrayList को प्रदर्शन में धीमा बनाता है।
3 असफल सुरक्षा ArrayList इटरेटर तेजी से विफल हो जाते हैं और ट्रैवर्स के दौरान संशोधन पर ConcurrentModificationException को फेंक देते हैं। CopyOnWriteArrayList विफल-सुरक्षित हैं और ट्रैवर्स के दौरान संशोधन की अनुमति देते हैं।
4 तत्व निकालें ArrayList का एक पुनरावर्तक पुनरावृत्ति के दौरान निष्कासन ऑपरेशन कर सकता है। CopyOnWriteArrayList पुनरावृति के दौरान निष्कासन कार्रवाई नहीं कर सकता है, अन्यथा यह रन-टाइम अपवाद को फेंक देगा UnsupportedOperationException।
5 जावा में परिचय ArrayList, CopyOnWriteArrayList से पुराना है क्योंकि इसे जावा संस्करण 1.2 में जोड़ा गया था। CopyOnWriteArrayList वर्ग जावा संस्करण 1.5 (या जावा 5) में जोड़ा गया था।
6 पैकेज ArrayList वर्ग java.util पैकेज में मौजूद है। CopyOnWriteArrayList वर्ग java.util.concurrent पैकेज में मौजूद है।

ArrayList बनाम CopyOnWriteArrayList का उदाहरण

ArrayListDemo.java

आयात java.util.*;सार्वजनिक वर्ग ArrayListDemo{सार्वजनिक स्थैतिक शून्य मुख्य(स्ट्रिंग[] args){ ArrayList l =new ArrayList (); एल.एड ("ए"); एल.एड ("बी"); एल.एड ("सी"); इटरेटर आईटीआर =एल.इटरेटर (); जबकि (itr.hasNext ()) {स्ट्रिंग एस =(स्ट्रिंग) itr.next (); अगर (s.equals("B")){ itr.remove(); } } System.out.println(l); }}

आउटपुट

[ए,सी]

उदाहरण

CopyOnWriteArrayListDemo.java

आयात करें सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] args) इंटरप्टेड एक्सेप्शन फेंकता है {l.add ("ए"); एल.एड ("बी"); एल.एड ("सी"); इटरेटर आईटीआर =एल.इटरेटर (); जबकि (itr.hasNext ()) {स्ट्रिंग एस =(स्ट्रिंग) itr.next (); System.out.println(s); अगर (s.equals("B")){ // RuntimeException फेंकता है itr.remove (); } थ्रेड.स्लीप (1000); } System.out.println(l); }}

आउटपुट

एबीएक्सप्शन इन थ्रेड "मेन" java.lang.UnsupportedOperationException

  1. जावा में इटरेटर और एन्यूमरेशन के बीच अंतर

    इटरेटर और एन्यूमरेशन दोनों ही संग्रह से किसी तत्व को पार करने और एक्सेस करने के लिए कर्सर हैं। वे दोनों संग्रह ढांचे से संबंधित हैं। संग्रह ढांचे में JDK1.0 और Iterator में JDK.1.2 संस्करण में गणना जोड़ी गई थी। एन्यूमरेशन संग्रह में संरचनात्मक परिवर्तन नहीं कर सकता क्योंकि इसमें संग्रह में तत्व तक

  1. जावा में ArrayList.clear () और ArrayList.removeAll () के बीच अंतर?

    जावा में ArrayList वर्ग सूची इंटरफ़ेस का एक आकार बदलने योग्य-सरणी कार्यान्वयन है। यह शून्य मानों की अनुमति देता है। स्पष्ट () विधि यह वर्ग वर्तमान सूची वस्तु से सभी तत्वों को हटा देता है। उदाहरण import java.util.ArrayList; public class ClearExample {    public static void main(String[] ar

  1. जावा में ऐरेलिस्ट और हैशसेट के बीच अंतर

    हैशसेट और ऐरेलिस्ट दोनों ही जावा संग्रह ढांचे के कुछ सबसे महत्वपूर्ण वर्ग हैं। ArrayList और हैशसेट के बीच महत्वपूर्ण अंतर निम्नलिखित हैं। सीनियर। नहीं. कुंजी ऐरेलिस्ट हैशसेट 1 कार्यान्वयन ArrayList सूची इंटरफ़ेस का कार्यान्वयन है। दूसरी ओर हैशसेट एक सेट इंटरफ़ेस का कार्यान्वयन है। 2 आंतरिक क