-Host-Betriebssystem: Windows10 Home ・ Gastbetriebssystem: WSL2 Ubuntu 20.04 ・ Java8
Ermitteln Sie den Maximalwert von HashMap mit dem Schlüsseltyp String und dem Werttyp Integer
Implementieren Sie mit der EntrySet-Methode. Unten ist der aktuelle Code
public static void main(String[] args) {
String arr[] = {"a", "a", "a", "a", "b", "b", "b", "c", "c", "d"};
Map<String, Integer> map = new HashMap<>();
//Speichern Sie die Elemente des Arrays in der Karte
for (String string : arr) {
if (map.get(string) == null) {
map.put(string, 1);
} else {
map.put(string, map.get(string) + 1);
}
}
//Initialisieren Sie zu diesem Zeitpunkt den Maximalwert und den Schlüssel
String maxKey = null;
Integer maxValue = 0;
//Holen Sie sich den Map-Schlüssel und den Wert nacheinander mit der entrySet-Methode
for (Map.Entry<String, Integer> entry : map.entrySet()) {
//Vergleichen Sie den Maximalwert und den Wert. Wenn der Wert groß ist, ersetzen Sie den Schlüssel und den Wert zu diesem Zeitpunkt.
if (entry.getValue() > maxValue) {
maxKey = entry.getKey();
maxValue = entry.getValue();
}
}
System.out.println(maxKey + " : " + maxValue);
a : 4
Ich konnte den Maximalwert sicher erreichen. Wenn es mehrere Maximalwerte gibt und Sie alle erhalten möchten, können Sie diese in einer Liste speichern.
Der Vorteil von entrySet besteht darin, dass Sie sowohl den Schlüssel als auch den Wert in einer Schleife erhalten können.