تعديل القواميس
جزء من قسم المنطق وتدفق التنفيذ في رحلة 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" غير موجود)التحدي
سهلاكتب طريقة تسمى <strong>modifyMap</strong> تقوم بتعديل HashMap معطى بناءً على شروط محددة.
- تأخذ HashMap يسمى
dataحيث:- المفاتيح من نوع
String. - القيم من نوع
Integer.
- المفاتيح من نوع
- تأخذ String
key. - تأخذ 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));
}
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق وتدفق التنفيذ
1المصفوفات متعددة الأبعاد
أساسيات المصفوفات ثنائية الأبعادالوصول إلى عناصر المصفوفات ثنائية الأبعادالحلقات المتداخلة مع المصفوفات ثنائية الأبعادمراجعة - المصفوفات ثنائية الأبعادجمع وطرح المصفوفاتالمصفوفات المتعرجة (Jagged Arrays)المصفوفات ثلاثية الأبعاد وما بعدهاأنماط المصفوفات ثنائية الأبعاد الشائعةمراجعة - كل شيء عن المصفوفات2HashMap الجزء الأول
ما هو الـ HashMap؟تعريف الـ HashMapالوصول إلى القيمالتحقق من وجود المفتاحتعديل القواميسملخص - HashMap3HashMap الجزء الثاني
دوال HashMapالتكرار باستخدام keySet()التكرار باستخدام entrySet()HashMap متداخلمراجعة - إدارة المستودعمراجعة - عمليات HashMap6التحكم المتقدم في تدفق البرنامج
العبارات المعنونةتعبير Switchمطابقة الأنماطجمل الحمايةمراجعة - تدفق التحكمتدرّب بنفسك: مترجم Java عبر الإنترنت