जब आप संग्रह ऑब्जेक्ट के साथ काम कर रहे होते हैं, जबकि एक थ्रेड किसी विशेष संग्रह ऑब्जेक्ट पर पुनरावृति कर रहा होता है, यदि आप इसमें तत्वों को जोड़ने या निकालने का प्रयास करते हैं, तो एक ConcurrentModificationException को फेंक दिया जाएगा।
इतना ही नहीं, यदि आप किसी संग्रह वस्तु को पुनरावृत्त कर रहे हैं, तो उसमें तत्वों को जोड़ें या निकालें और इसकी सामग्री को फिर से पुनरावृत्त करने का प्रयास करें, यह माना जाता है कि आप कई थ्रेड्स का उपयोग करके संग्रह वस्तु तक पहुंचने का प्रयास कर रहे हैं और ConcurrentModificationException को फेंक दिया गया है।
उदाहरण
आयात करें // एक ArrayList ऑब्जेक्ट सूची को तुरंत चालू करना। जोड़ें ("JavaFX"); सूची जोड़ें ("जावा"); सूची जोड़ें ("वेबजीएल"); सूची जोड़ें ("ओपनसीवी"); System.out.println ("सरणी सूची की सामग्री (पहले से अंतिम):"); इटरेटर <स्ट्रिंग> यह =list.iterator (); जबकि (it.hasNext ()) {System.out.print(it.next ()+", "); }//सूची.निकालें(3); list.add(3, "हडूप"); जबकि (it.hasNext ()) {System.out.print(it.next ()+", "); } }}आउटपुट
सरणी सूची की सामग्री (पहली से अंतिम):JavaFX, Java, WebGL, OpenCV, Exception in thread "main" java.util.ConcurrentModificationException at java.util.ArrayList$Itr.checkForComodification(Unknown Source) java. util.ArrayList$Itr.next(अज्ञात स्रोत) नमूना पर। OccurenceOfElements.main(OccurenceOfElements.java:23)
एकाधिक थ्रेड्स से संग्रह वस्तुओं तक पहुँचने के दौरान इसे हल करने के लिए सिंक्रनाइज़ ब्लॉक या विधि का उपयोग करें और, यदि आप इसे पुनर्प्राप्त करते समय डेटा को संशोधित कर रहे हैं, तो डेटा को संशोधित करने के बाद फिर से इटरेटर ऑब्जेक्ट प्राप्त करें।
उदाहरण
आयात करें // एक ArrayList ऑब्जेक्ट सूची को तुरंत चालू करना। जोड़ें ("JavaFX"); सूची जोड़ें ("जावा"); सूची जोड़ें ("वेबजीएल"); सूची जोड़ें ("ओपनसीवी"); System.out.println ("सरणी सूची की सामग्री (पहले से अंतिम):"); इटरेटर <स्ट्रिंग> यह =list.iterator (); जबकि (it.hasNext ()) {System.out.print(it.next ()+" "); } सूची.निकालें(3); System.out.println (""); System.out.println ("हटाने के बाद सरणी सूची की सामग्री:"); यह =सूची। इटरेटर (); जबकि (it.hasNext ()) {System.out.print(it.next ()+" "); } }}आउटपुट
सरणी सूची की सामग्री (पहले से अंतिम):JavaFX. जावा। वेबजीएल. OpenCV. हटाने के बाद सरणी सूची की सामग्री:JavaFX. जावा। वेबजीएल.