लूप में कलेक्शन से ConcurrentModificationException के बिना एलिमेंट कैसे हटाएं?
सभी को नमस्ते! मैं एक शुरुआती Java डेवलपर हूँ और मुझे एक बहुत अजीब एरर मिली। मैं एक सरल प्रोग्राम लिख रहा हूँ: एक स्ट्रिंग की लिस्ट है, और मैं उसमें से वे सभी एलिमेंट हटाना चाहता हूँ जो "A" अक्षर से शुरू होते हैं। यह तार्किक लगता है, लेकिन चलाने पर ConcurrentModificationException आती है।
यह मेरा कोड है:
```java
List list = new ArrayList<>(Arrays.asList("Apple", "Banana", "Avocado", "Cherry"));
for (String fruit : list) {
if (fruit.startsWith("A")) {
list.remove(fruit);
}
}
```
एरर हटाने के बाद इटरेशन पर आती है। मैंने पढ़ा है कि for-each लूप के दौरान कलेक्शन को मॉडिफाई नहीं करना चाहिए, लेकिन फिर एलिमेंट को सही तरीके से कैसे हटाएं? मुझे मूल लिस्ट को बदलना है, नई नहीं बनानी।
कृपया बताएं कि यह सही तरीके से कैसे करें? कलेक्शन को ट्रैवर्स करते समय एलिमेंट को सुरक्षित रूप से हटाने के क्या तरीके हैं? पहले से धन्यवाद!
<<>>
समस्या: ConcurrentModificationException क्यों आती है
आप एक क्लासिक समस्या से जूझ रहे हैं।