Menu
Coddy logo textTech

Modifier les Dictionnaires

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

Les HashMaps supportent également la suppression de clés et leur mise à jour via les méthodes put(), remove() et replace().

Par exemple, remplissons d'abord un 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("bob", "Guest");
// Met à jour bob en 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 <strong>modifyMap</strong> qui modifie une HashMap donnée en fonction de 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 retourner la HashMap mise à jour en suivant :

  • Si la clé existe dans data et a la même valeur que newValue, utilisez <strong>replace()</strong> 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 <strong>newValue</strong>.

Aide-mémoire

Méthodes HashMap pour modifier les données :

Supprimer une clé :

users.remove("bob"); // Supprime la paire clé-valeur "bob"

Mettre à jour/remplacer une valeur :

users.replace("alice", "Guest"); // Met à jour la clé existante
users.replace("nonexistent", "Admin"); // Ne fait rien si la clé n'existe pas

Ajouter ou mettre à jour une clé :

users.put("newUser", "Admin"); // Ajoute une nouvelle clé ou met à jour l'existante

Essayez vous-même

// --- Modules pour convertir une chaîne de 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 la chaîne de 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