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)Défi
FacileÉcrivez une méthode nommée <strong>modifyMap</strong> qui modifie une HashMap donnée en fonction de conditions spécifiques.
- Prend une HashMap nommée
dataoù :- Les clés sont de type
String. - Les valeurs sont de type
Integer.
- Les clés sont de type
- Prend une String
key. - Prend un Integer
newValue.
La méthode doit retourner la HashMap mise à jour en suivant :
- Si la clé existe dans
dataet a la même valeur quenewValue, 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 pasAjouter ou mettre à jour une clé :
users.put("newUser", "Admin"); // Ajoute une nouvelle clé ou met à jour l'existanteEssayez 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));
}
}
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
1Tableaux multidimensionnels
Bases des tableaux 2DAccès aux éléments des tableaux 2DBoucles imbriquées avec les tableaux 2DRécapitulatif - Tableaux 2DAddition et soustraction de matricesTableaux irréguliersTableaux 3D et au-delàMotifs courants des tableaux 2DRécapitulatif - Tout sur les tableaux4HashSet Partie 1
Qu'est-ce qu'un HashSet ?Ajouter un ÉlémentSupprimer un ÉlémentVérifier si un Élément ExisteVide et TailleVider et ClonerRécapitulatif - HashSet7Gestion des erreurs de base
Bases du try-catchBloc finallyLever des exceptionsExceptions personnalisées2HashMap Partie 1
Qu'est-ce qu'une HashMap ?Déclarer une HashMapAccéder aux ValeursVérifier si une Clé ExisteModifier les DictionnairesRécapitulatif - HashMap3HashMap Partie 2
Méthodes HashMapItérer avec keySet()Itérer avec entrySet()HashMap imbriquéRécapitulatif - Gérer l'entrepôtRécapitulatif - Opérations HashMap6Flux de contrôle avancé
Instructions étiquetéesExpression switchAppariement de motifsClauses de gardeRécapitulatif - Flux de contrôle9Projet - Compteur de Mots Uniques
Entrée de Texte et StockageTraitement des Mots