Menu
CoddyTech

Modifier les Dictionnaires

Fait partie de la section Logique & Flux du Journey Java de Coddy. Leçon 14 sur 59.

Les HashMaps permettent également de supprimer et de mettre à jour des entrées à l’aide des méthodes put(), remove() et replace().

Par exemple, commençons par remplir une HashMap :

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

Pour supprimer une clé :

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

Pour mettre à jour une clé :

users.replace("alice", "Guest");
// Met à jour alice avec Guest

users.replace("Charlie", "Admin");
// Ne fait rien (la clé "Charlie" n'existe pas)
challenge icon

Défi

Facile

Écrivez une méthode nommée modifyMap qui modifie une HashMap donnée selon des conditions spécifiques.

  1. Prend une HashMap nommée data où :
    • Les clés sont de type String.
    • Les valeurs sont de type Integer.
  2. Prend une String key.
  3. Prend un Integer newValue.

La méthode doit renvoyer la HashMap mise à jour en respectant les règles suivantes :

  • Si la clé existe dans data et a la même valeur que newValue, utilisez replace(), mais augmentez la valeur de 1.
  • Si la clé existe, mais a une valeur différente, supprimez-la.
  • Si la clé n’existe pas, ajoutez-la avec newValue.

Essayez vous-même

// --- Modules pour convertir une chaîne représentant une HashMap en 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) {
        // Écrivez votre code ici
    }

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

        // Convertir une String représentant une HashMap en 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 iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique & Flux

Entraînez-vous par vous-même : Compilateur Java en ligne