در جاوا،
modCount
یک فیلد محافظتشده در برخی از پیادهسازیهای مجموعهها (مانند ArrayList, HashSet, HashMap,
و غیره) است. این فیلد برای ردیابی تغییرات ساختاری در مجموعه استفاده میشود. تغییرات ساختاری شامل عملیاتهایی مانند افزودن، حذف، یا تغییر اندازه مجموعه است که ساختار داخلی مجموعه را تغییر میدهد.نقش
modCount
1. تشخیص تغییرات همزمان: modCount
به تشخیص تغییرات همزمان مجموعه کمک میکند. به عنوان مثال، در هنگام پیمایش (iteration) روی یک مجموعه، اگر مجموعه به طور همزمان تغییر کند، مقدار modCount
تغییر میکند و این تغییرات منجر به پرتاب استثنای ConcurrentModificationException
میشود.2. اطمینان از یکپارچگی دادهها: با استفاده از `modCount`، جاوا میتواند از یکپارچگی دادهها در مجموعهها اطمینان حاصل کند و مانع دسترسیهای نادرست و خطاهای همزمانی شود.
مثال
فرض کنید یک
ArrayList
دارید و در حین پیمایش بر روی آن، یکی دیگر از نخها عنصری را به لیست اضافه میکند. modCount
تشخیص میدهد که تعداد تغییرات در لیست افزایش یافته است و یک استثنای ConcurrentModificationException
پرتاب میکند.List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
for (Integer number : list) {
if (number == 1) {
list.add(3);
}
}
### نحوه عملکرد
modCount
- هنگامی که یک تغییر ساختاری در مجموعه رخ میدهد (مانند افزودن یا حذف عنصر)، مقدار modCount
افزایش مییابد.- در هنگام پیمایش بر روی مجموعه، مقدار
modCount
بررسی میشود و در صورت تشخیص تغییرات غیرمنتظره، استثنای ConcurrentModificationException
پرتاب میشود.🆔 @javapro_ir
🆔 @group_javapro