تخطى إلى المحتوى
استثناءات Javaخطأ
ConcurrentModificationException

ConcurrentModificationException

تُعدَّل مجموعة أثناء التكرار عليها.

jvmandroidspring

أسباب هذا الخطأ

تُجرى تعديل هيكلي (إضافة أو حذف) على مجموعة أثناء التكرار باستخدام حلقة for-each أو iterator. قد يحدث هذا في الكود أحادي الخيط عند تعديل المجموعة داخل حلقتها الخاصة.

كيفية الإصلاح

استخدم Iterator.remove() لحذف العناصر بأمان أثناء التكرار. استخدم ConcurrentHashMap أو CopyOnWriteArrayList للوصول المتزامن. اجمع العناصر المراد حذفها في قائمة منفصلة واحذفها بعد اكتمال التكرار.

مثال

for (String s : list) {
  list.remove(s); // CME
}
التوثيق الرسمي

رموز أخطاء ذات صلة