Avatar ·

كيفية تكرار جميع الإدخالات في Java Map بكفاءة والحصول على المفتاح والقيمة؟

مرحباً بالجميع! لقد بدأت للتو في تعلم Java وواجهت مشكلة كهذه. لدي HashMap أضيف إليها بعض البيانات. على سبيل المثال، أخزن فيها أسماء الطلاب ودرجاتهم: ```java Map studentGrades = new HashMap<>(); studentGrades.put("Анна", 90); studentGrades.put("Иван", 85); studentGrades.put("Мария", 95); ``` الآن أحتاج إلى عرض جميع الطلاب ودرجاتهم على الشاشة. تبدو مهمة بسيطة، لكني أرى على الإنترنت العديد من الطرق المختلفة لتكرار Map: عبر entrySet()، keySet()، values()، lambdas، for-each، iterators... لقد تشوشت. جربت هكذا: ```java for (String key : studentGrades.keySet()) { System.out.println("الطالب: " + key + ", الدرجة: " + studentGrades.get(key)); } ``` هذا يعمل، لكن قيل لي إنه غير فعال لأنني في كل مرة أقوم بعمل get() باستخدام المفتاح. ماذا لو كانت Map كبيرة؟ وماذا لو كنت بحاجة ليس فقط للقراءة، بل أيضاً لحذف العناصر أثناء التكرار؟ لقد سمعت عن ConcurrentModificationException. هل يمكن