סיכום - HashMap
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Java של Coddy. שיעור 15 מתוך 59.
אתגר
קלצור מתודה בשם 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();
// המירו String של HashMap ל-HashMap
Type mapType = new TypeToken<HashMap<String, Integer>>(){}.getType();
HashMap<String, Integer> data = new Gson().fromJson(hashMapString, mapType);
// המירו String של Array ל-Array
String[] operations = new Gson().fromJson(operationsString, String[].class);
HashMap<String, Integer> result = processHashMap(data, operations);
System.out.println(new Gson().toJson(result));
}
}
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
1מערכים רב־ממדיים
יסודות מערכים דו־ממדייםגישה לאיברים במערך דו־ממדילולאות מקוננות עם מערכים דו־ממדייםסיכום — מערכים דו־ממדייםחיבור וחיסור מטריצותמערכים מדורגיםמערכים תלת־ממדיים ומעבר להםתבניות נפוצות במערכים דו־ממדייםסיכום — כל מה שצריך לדעת על מערכיםתרגלו בעצמכם: קומפיילר Java אונליין