Enumeration
ConcurrentModificationException
फेंक नहीं देता है, क्यों?जावा गणना बनाम इटरेटर
कोड नीचे देखें।
public static void main(String[] args) {
Vector<String> v=new Vector<String>();
v.add("Amit");
v.add("Raj");
v.add("Pathak");
v.add("Sumit");
v.add("Aron");
v.add("Trek");
Enumeration<String> en=v.elements();
while(en.hasMoreElements())
{
String value=(String) en.nextElement();
System.out.println(value);
v.remove(value);
}
}
यह केवल प्रिंट:
Amit Pathak Aron
इस तरह के व्यवहार क्यों है। क्या हम कह सकते हैं कि Enumerator
धागा सुरक्षित है।
संपादित करें: इटरेटर के साथ काम करते समय यह एकल थ्रेड एप्लिकेशन में ConcurrentModificationException
फेंकता है।
public static void main(String[] args) {
Vector<String> v=new Vector<String>();
v.add("Amit");
v.add("Raj");
v.add("Pathak");
v.add("Sumit");
v.add("Aron");
v.add("Trek");
Iterator<String> it=v.iterator();
while(it.hasNext())
{
String value=(String) it.next();
System.out.println(value);
v.remove(value);
}
}
कृपया जांचें।
कृपया http://stackoverflow.com/questions/948194/different-using-java-util-enumeration-and-iterator – Garbage
इस सवाल की पृष्ठभूमि क्या है पढ़ा है? क्या आप एक बहु थ्रेडेड वातावरण में इटरेटर्स की बजाय गणनाओं का उपयोग करने पर विचार कर रहे हैं? –
क्या कहीं और कोड है जिसे हमें पता होना चाहिए? उपरोक्त नमूना कोड में कोई मल्टीथ्रेडिंग नहीं है, इसलिए जब तक आपके पास थ्रेड-सुरक्षा को दोष देने का कोई विशिष्ट कारण नहीं है, मुझे लगता है कि आप – posdef