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

تعديل القواميس

جزء من قسم المنطق وتدفق التنفيذ في رحلة Java على Coddy. الدرس 14 من 59.

تدعم HashMaps أيضًا إزالة وتحديث المدخلات باستخدام الأساليب put() و remove() و replace().

على سبيل المثال، دعونا نملأ HashMap أولاً:

HashMap<String, String> users = new HashMap<>();
users.put("alice", "Admin");
users.put("bob", "User");

لإزالة مفتاح:

users.remove("bob"); // يزيل "bob"
System.out.println(users);
// {alice=Admin}

لتحديث مفتاح:

users.replace("alice", "Guest");
// تحديث alice إلى Guest

users.replace("Charlie", "Admin");
// لا يفعل شيئاً (المفتاح "Charlie" غير موجود)
challenge icon

التحدي

سهل

اكتب طريقة تسمى <strong>modifyMap</strong> تقوم بتعديل HashMap معطى بناءً على شروط محددة.

  1. تأخذ HashMap يسمى data حيث:
    • المفاتيح من نوع String.
    • القيم من نوع Integer.
  2. تأخذ String key.
  3. تأخذ Integer newValue.

يجب أن تعيد الطريقة الـ HashMap المحدث باتباع ما يلي:

  • إذا كان المفتاح موجوداً في data وله نفس قيمة newValue، استخدم <strong>replace()</strong> ولكن قم بزيادة القيمة بمقدار 1.
  • إذا كان المفتاح موجوداً ولكن بقيمة مختلفة، قم بإزالته.
  • إذا لم يكن المفتاح موجوداً، قم بإضافته مع <strong>newValue</strong>.

جرّب بنفسك

// --- وحدات لتحويل سلسلة نصية من hashmap إلى hashmap ---
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
// -----------------------------
import java.util.HashMap;
import java.util.Scanner;

public class Main {
    public static HashMap<String, Integer> modifyMap(HashMap<String, Integer> data, String key, int newValue) {
        // اكتب كودك هنا
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String hashMapString = scanner.nextLine();
        String key = scanner.nextLine();
        int newValue = scanner.nextInt();

        // تحويل String الخاص بـ HashMap إلى HashMap
        Type mapType = new TypeToken<HashMap<String, Integer>>(){}.getType();
        HashMap<String, Integer> data = new Gson().fromJson(hashMapString, mapType);

        HashMap<String, Integer> result = modifyMap(data, key, newValue);
        System.out.println(new Gson().toJson(result));
    }
}
quiz iconاختبر نفسك

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

جميع دروس المنطق وتدفق التنفيذ

تدرّب بنفسك: مترجم Java عبر الإنترنت