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

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


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

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

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

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

ArrayListDemo.java

import java.util.*; public class ArrayListDemo{ public static void main(String[] args){ ArrayList l = new ArrayList(); l.add("A"); l.add("B"); l.add("C"); Iterator itr = l.iterator(); while (itr.hasNext()){ String s = (String)itr.next(); if (s.equals("B")){ itr.remove(); } } System.out.println(l); } }

आउटपुट

[A,C]

उदाहरण

CopyOnWriteArrayListDemo.java

import java.util.concurrent.CopyOnWriteArrayList; import java.util.*; class CopyOnWriteArrayListDemo extends Thread { static CopyOnWriteArrayList l = new CopyOnWriteArrayList(); public static void main(String[] args) throws InterruptedException{ l.add("A"); l.add("B"); l.add("C"); Iterator itr = l.iterator(); while (itr.hasNext()){ String s = (String)itr.next(); System.out.println(s); if (s.equals("B")){ // रनटाइम एक्सेप्शन फेंकता है itr.remove(); } Thread.sleep(1000); } System.out.println(l); } }

आउटपुट

A B Exception in thread "main" java.lang.UnsupportedOperationException
  1. - जावा में Iterator और Enumeration के बीच अंतर

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

  1. - Java में ArrayList.clear() और ArrayList.removeAll() में अंतर

    Java में ArrayList क्लास List इंटरफेस का एक आकार-परिवर्तनीय सरणी कार्यान्वयन है। यह null मानों की अनुमति देता है। इस क्लास की clear() विधि वर्तमान List ऑब्जेक्ट से सभी तत्वों को हटा देती है। उदाहरण import java.util.ArrayList; public class ClearExample { public static void main(String[] args){ //Arra

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

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