-OS hôte: Windows10 Home ・ OS invité: WSL2 Ubuntu 20.04 ・ Java8
Obtenez la valeur maximale de HashMap avec le type de clé String et le type de valeur Integer
Implémentez à l'aide de la méthode EntrySet. Ci-dessous le code réel
public static void main(String[] args) {
String arr[] = {"a", "a", "a", "a", "b", "b", "b", "c", "c", "d"};
Map<String, Integer> map = new HashMap<>();
//Stocker les éléments du tableau dans la carte
for (String string : arr) {
if (map.get(string) == null) {
map.put(string, 1);
} else {
map.put(string, map.get(string) + 1);
}
}
//Initialiser la valeur maximale et la clé à ce moment
String maxKey = null;
Integer maxValue = 0;
//Obtenez la clé de mappage et la valeur une par une avec la méthode entrySet
for (Map.Entry<String, Integer> entry : map.entrySet()) {
//Comparez la valeur maximale et la valeur, et si la valeur est grande, remplacez la clé et la valeur à ce moment-là.
if (entry.getValue() > maxValue) {
maxKey = entry.getKey();
maxValue = entry.getValue();
}
}
System.out.println(maxKey + " : " + maxValue);
a : 4
J'ai pu obtenir la valeur maximale en toute sécurité. S'il existe plusieurs valeurs maximales et que vous souhaitez toutes les obtenir, vous pouvez les stocker dans une liste.
L'avantage de entrySet est que vous pouvez obtenir à la fois la clé et la valeur dans une boucle.