Menu
Coddy logo textTech

שינוי מילונים

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Java של Coddy. שיעור 14 מתוך 59.

מפות HashMap תומכות גם בהסרה ובעדכון של רשומות באמצעות המתודות 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 אונליין