Menu
Coddy logo textTech

Modyfikowanie słowników

Część sekcji Logika i przepływ sterowania ścieżki Java w Coddy. Lekcja 14 z 59.

Mapy HashMap obsługują również usuwanie i aktualizowanie wpisów za pomocą metod put(), remove() i replace().

Na przykład najpierw wypełnijmy HashMap:

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

Aby usunąć klucz:

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

Aby zaktualizować klucz:

users.replace("alice", "Guest");
// Aktualizuje alice do Guest

users.replace("Charlie", "Admin");
// Nic nie robi (klucz "Charlie" nie istnieje)
challenge icon

Wyzwanie

Łatwy

Napisz metodę o nazwie <strong>modifyMap</strong>, która modyfikuje daną strukturę HashMap zgodnie z określonymi warunkami.

  1. Przyjmuje strukturę HashMap o nazwie data, w której:
    • Klucze są typu String.
    • Wartości są typu Integer.
  2. Przyjmuje wartość typu String o nazwie key.
  3. Przyjmuje wartość typu Integer o nazwie newValue.

Metoda powinna zwrócić zaktualizowaną strukturę HashMap, postępując zgodnie z poniższymi zasadami:

  • Jeśli klucz istnieje w data i ma taką samą wartość jak newValue, użyj <strong>replace()</strong>, ale zwiększ wartość o 1.
  • Jeśli klucz istnieje, ale ma inną wartość, usuń go.
  • Jeśli klucz nie istnieje, dodaj go z wartością <strong>newValue</strong>.

Spróbuj swoich sił

// --- Moduły do konwersji ciągu znaków reprezentującego hashmap na 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) {
        // Wpisz tutaj swój kod
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String hashMapString = scanner.nextLine();
        String key = scanner.nextLine();
        int newValue = scanner.nextInt();

        // Przekonwertuj String reprezentujący HashMap na 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 iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ sterowania

Poćwicz samodzielnie: Kompilator Java online