Menu
CoddyTech

Wörterbücher modifizieren

Teil des Abschnitts Logik & Ablauf der Java-Journey von Coddy. Lektion 14 von 59.

HashMaps unterstützen auch das Entfernen und Aktualisieren von Einträgen mit den Methoden put(), remove() und replace().

Füllen wir zum Beispiel zunächst eine HashMap:

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

So entfernst du einen Schlüssel:

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

So aktualisierst du einen Schlüssel:

users.replace("alice", "Guest");
// Aktualisiert alice zu Guest

users.replace("Charlie", "Admin");
// Bewirkt nichts (der Schlüssel "Charlie" existiert nicht)
challenge icon

Aufgabe

Einfach

Schreibe eine Methode namens modifyMap, die eine gegebene HashMap anhand bestimmter Bedingungen verändert.

  1. Sie erhält eine HashMap namens data, wobei:
    • die Schlüssel vom Typ String sind.
    • die Werte vom Typ Integer sind.
  2. Sie erhält einen String key.
  3. Sie erhält einen Integer newValue.

Die Methode soll die aktualisierte HashMap wie folgt zurückgeben:

  • Wenn der Schlüssel in data existiert und denselben Wert wie newValue hat, verwende replace(), aber erhöhe den Wert um 1.
  • Wenn der Schlüssel existiert, aber einen anderen Wert hat, entferne ihn.
  • Wenn der Schlüssel nicht existiert, füge ihn mit newValue hinzu.

Probier es selbst

// --- Module zum Umwandeln einer Zeichenkette mit einer HashMap in eine 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) {
        // Schreibe deinen Code hier
    }

    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 mit einer HashMap in eine HashMap umwandeln
        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 iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Ablauf

Übe selbstständig: Online-Java-Compiler