Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

التكرار باستخدام entrySet()

جزء من قسم Logic & Flow في رحلة Java على Coddy — الدرس 18 من 59.

التكرار باستخدام entrySet() يعني الحصول على مجموعة من كائنات Map.Entry من الـ HashMap. يوفر كل Map.Entry كلاً من المفتاح والقيمة المقابلة له، مما يجعله أكثر كفاءة لأنه يتجنب عملية البحث الإضافية المطلوبة مع keySet().

إنشاء HashMap:

HashMap<String, Integer> inventory = new HashMap<>();
inventory.put("Laptop", 10);
inventory.put("Mouse", 50);
inventory.put("Keyboard", 30);

التكرار باستخدام entrySet():

for (Map.Entry<String, Integer> entry : inventory.entrySet()) {
   System.out.println("Product: " +
   entry.getKey() + ", Quantity: " +
   entry.getValue());
}
// المنتج: Laptop، الكمية: 10
// المنتج: Mouse، الكمية: 50
// المنتج: Keyboard، الكمية: 30
challenge icon

التحدي

سهل

أنشئ دالة باسم <strong>printInventoryEntrySet</strong> تقبل HashMap (مع أسماء المنتجات كمفاتيح والكميات كقيم) من سلسلة JSON نصية يتم قراءتها عبر Scanner. يجب أن تقوم الدالة بالتكرار عبر HashMap باستخدام طريقة entrySet() وطباعة كل زوج (مفتاح-قيمة) بالتنسيق التالي:

Product: <product name>, Quantity: <quantity>

ورقة مرجعية

استخدم entrySet() للتكرار عبر HashMap والوصول إلى كل من المفاتيح والقيم بكفاءة:

HashMap<String, Integer> inventory = new HashMap<>();
inventory.put("Laptop", 10);
inventory.put("Mouse", 50);
inventory.put("Keyboard", 30);

for (Map.Entry<String, Integer> entry : inventory.entrySet()) {
   System.out.println("Product: " +
   entry.getKey() + ", Quantity: " +
   entry.getValue());
}

يوفر كل كائن Map.Entry ما يلي:

  • entry.getKey() - يعيد المفتاح
  • entry.getValue() - يعيد القيمة

هذا النهج أكثر كفاءة من استخدام keySet() لأنه يتجنب عمليات البحث الإضافية.

جرّب بنفسك

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;

public class Main {
    public static void printInventoryEntrySet(HashMap<String, Integer> inventory) {
        // اكتب كودك هنا باستخدام entrySet()
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String inventoryString = scanner.nextLine();

        // تحويل نص JSON إلى HashMap<String, Integer>
        Type mapType = new TypeToken<HashMap<String, Integer>>(){}.getType();
        HashMap<String, Integer> inventory = new Gson().fromJson(inventoryString, mapType);

        printInventoryEntrySet(inventory);
    }
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Logic & Flow