Trouver la valeur maximale en utilisant l'itération
Une façon de trouver la valeur maximale dans une Map consiste à parcourir toutes les entrées et à suivre la valeur maximale trouvée jusqu'à présent. Cette approche fonctionne avec n'importe quelle implémentation de Map.
Qu'est-ce que Map.Entry ?
Map.Entry est une interface qui représente une paire clé-valeur dans une Map. Elle fournit des méthodes pour accéder à la clé et à la valeur de la paire.
Mise en œuvre de l'approche itérative
Modifions notre programme Java pour trouver le prix maximal d'un cours en utilisant une itération :
-
Ouvrez le fichier MaxValueInMap.java dans le WebIDE
-
Remplacez le code existant par le suivant :
import java.util.*;
public class MaxValueInMap {
public static void main(String args[]) {
// Create a HashMap to store course prices
Map<String, Integer> coursePrices = new HashMap<>();
// Variable to store the entry with maximum price
Map.Entry<String, Integer> maxEntry = null;
// Add key-value pairs to the map
coursePrices.put("Java", 5000);
coursePrices.put("Python", 3000);
coursePrices.put("CPP", 4000);
coursePrices.put("Android", 8000);
System.out.println("Course price map: " + coursePrices);
// Iterate through each entry in the map
for (Map.Entry<String, Integer> entry : coursePrices.entrySet()) {
// If maxEntry is null OR current entry's value is greater than maxEntry's value
if (maxEntry == null || entry.getValue().compareTo(maxEntry.getValue()) > 0) {
maxEntry = entry;
}
}
// Print the maximum price and its corresponding course
System.out.println("Course with maximum price: " + maxEntry.getKey());
System.out.println("Maximum price: " + maxEntry.getValue());
}
}
-
Enregistrez le fichier
-
Exécutez le programme avec :
javac MaxValueInMap.java && java MaxValueInMap
Vous devriez voir une sortie similaire à :
Course price map: {Java=5000, CPP=4000, Android=8000, Python=3000}
Course with maximum price: Android
Maximum price: 8000
- Nous créons une variable
maxEntry initialement définie sur null
- Nous parcourons chaque entrée de la map en utilisant la méthode
entrySet()
- Pour chaque entrée, nous comparons sa valeur avec la valeur maximale actuelle
- Si l'entrée actuelle a une valeur supérieure, ou si
maxEntry est toujours null, nous mettons à jour maxEntry
- Après avoir terminé l'itération,
maxEntry contient l'entrée avec la valeur maximale
Cette approche est utile lorsque vous avez besoin à la fois de la clé et de la valeur de l'entrée maximale.