Middle
Quelle est la différence entre les méthodes put et compute?
sobes.tech IA
Réponse de l'IA
put(key, value) associe simplement value à key, en remplaçant la valeur existante si la clé est déjà présente.
compute(key, remappingFunction) calcule une nouvelle valeur pour key en utilisant la fonction fournie remappingFunction. La fonction prend la clé actuelle et sa valeur actuelle (ou null si la clé n'existe pas) et retourne une nouvelle valeur qui sera associée à la clé. Si la fonction retourne null, l'entrée est supprimée.
Principales différences :
- Gestion des clés absentes :
putinsère une nouvelle valeur.computepeut utiliser la valeur précédente (mêmenull) pour en calculer une nouvelle. - Dépendance de la valeur précédente :
putdéfinit la valeur indépendamment de la précédente.computeutilise explicitement la valeur précédente dans la fonction de calcul. - Suppression d'entrées :
put(key, null)supprime l'entrée.computesupprime l'entrée si la fonction de calcul retournenull.
Exemple d'utilisation :
// Utilisation de put
Map<String, Integer> countsPut = new HashMap<>();
countsPut.put("apple", 1);
countsPut.put("apple", 2); // Remplace 1 par 2
// Utilisation de compute pour incrémenter un compteur
Map<String, Integer> countsCompute = new HashMap<>();
countsCompute.compute("banana", (key, value) -> value == null ? 1 : value + 1); // banana sera 1
countsCompute.compute("banana", (key, value) -> value == null ? 1 : value + 1); // banana sera 2
countsCompute.compute("cherry", (key, value) -> null); // Supprime cherry s'il existait