ملخص - HashMap
جزء من قسم Logic & Flow في رحلة Java على Coddy — الدرس 15 من 59.
التحدي
سهلقم بإنشاء طريقة (method) باسم processHashMap تأخذ HashMap<String, Integer> ومصفوفة من عمليات String، ثم تقوم بتنفيذ الإجراءات التالية:
1. عملية GET
- التنسيق:
"GET key" - الإجراء:
- إذا كان المفتاح موجوداً: اطبع القيمة
- إذا لم يكن المفتاح موجوداً: اطبع
"Not found"
2. عملية CHECK
- التنسيق:
"CHECK key" - الإجراء:
- إذا كان المفتاح موجوداً: اطبع
"Exists" - إذا لم يكن المفتاح موجوداً: اطبع
"Not found"
- إذا كان المفتاح موجوداً: اطبع
3. عملية MODIFY
- التنسيق:
"MODIFY key targetValue" - الإجراء:
- إذا كان المفتاح موجوداً وقيمته الحالية تساوي targetValue: استخدم
replace()لتحديث القيمة إلى targetValue + 1 - إذا كان المفتاح موجوداً ولكن قيمته الحالية تختلف عن targetValue: استخدم
remove()لحذف المفتاح - إذا لم يكن المفتاح موجوداً: استخدم
put()لإضافته مع تعيين targetValue كقيمة له
- إذا كان المفتاح موجوداً وقيمته الحالية تساوي targetValue: استخدم
- ملاحظة: لا تطبع أي شيء أثناء عمليات MODIFY
المخرج النهائي:
بعد معالجة جميع العمليات، يجب أن تعيد الطريقة الـ HashMap المعدل. ستقوم طريقة main بطباعته بتنسيق JSON.
جرّب بنفسك
// --- وحدات لتحويل سلسلة 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> processHashMap(HashMap<String, Integer> data, String[] operations) {
// اكتب كودك هنا
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String hashMapString = scanner.nextLine();
String operationsString = scanner.nextLine();
// تحويل سلسلة HashMap إلى HashMap
Type mapType = new TypeToken<HashMap<String, Integer>>(){}.getType();
HashMap<String, Integer> data = new Gson().fromJson(hashMapString, mapType);
// تحويل سلسلة Array إلى Array
String[] operations = new Gson().fromJson(operationsString, String[].class);
HashMap<String, Integer> result = processHashMap(data, operations);
System.out.println(new Gson().toJson(result));
}
}
جميع دروس Logic & Flow
1المصفوفات متعددة الأبعاد
أساسيات المصفوفات ثنائية الأبعادالوصول إلى عناصر المصفوفات ثنائية الأبعادالحلقات المتداخلة مع المصفوفات ثنائية الأبعادمراجعة - المصفوفات ثنائية الأبعادجمع وطرح المصفوفاتالمصفوفات المتعرجة (Jagged Arrays)المصفوفات ثلاثية الأبعاد وما بعدهاأنماط المصفوفات ثنائية الأبعاد الشائعةمراجعة - كل شيء عن المصفوفات2HashMap الجزء الأول
ما هو الـ HashMap؟تعريف الـ HashMapالوصول إلى القيمالتحقق من وجود المفتاحتعديل القواميسملخص - HashMap3HashMap الجزء الثاني
دوال HashMapالتكرار باستخدام keySet()التكرار باستخدام entrySet()HashMap متداخلمراجعة - إدارة المستودعمراجعة - عمليات HashMap6التحكم المتقدم في تدفق البرنامج
العبارات المعنونةتعبير Switchمطابقة الأنماطجمل الحمايةمراجعة - تدفق التحكم