Finden des maximalen Werts mithilfe von Iteration
Eine Möglichkeit, den maximalen Wert in einer Map zu finden, besteht darin, alle Einträge zu durchlaufen und den bisher gefundenen maximalen Wert zu verfolgen. Dieser Ansatz funktioniert mit jeder Map-Implementierung.
Was ist Map.Entry?
Map.Entry
ist eine Schnittstelle, die ein Schlüssel-Wert-Paar in einer Map darstellt. Sie bietet Methoden, um sowohl den Schlüssel als auch den Wert im Paar zuzugreifen.
Implementierung des iterativen Ansatzes
Ändern wir unser Java-Programm, um den maximalen Kurspreis mithilfe von Iteration zu finden:
-
Öffnen Sie die Datei MaxValueInMap.java
in der WebIDE.
-
Ersetzen Sie den vorhandenen Code durch den folgenden:
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());
}
}
-
Speichern Sie die Datei.
-
Führen Sie das Programm aus mit:
javac MaxValueInMap.java && java MaxValueInMap
Sie sollten eine Ausgabe ähnlich der folgenden sehen:
Course price map: {Java=5000, CPP=4000, Android=8000, Python=3000}
Course with maximum price: Android
Maximum price: 8000
Wie die Iteration funktioniert
- Wir erstellen eine Variable
maxEntry
, die zunächst auf null
gesetzt wird.
- Wir durchlaufen jeden Eintrag in der Map mithilfe der Methode
entrySet()
.
- Für jeden Eintrag vergleichen wir seinen Wert mit dem aktuellen maximalen Wert.
- Wenn der aktuelle Eintrag einen größeren Wert hat oder wenn
maxEntry
immer noch null
ist, aktualisieren wir maxEntry
.
- Nach Abschluss der Iteration enthält
maxEntry
den Eintrag mit dem maximalen Wert.
Dieser Ansatz ist nützlich, wenn Sie sowohl den Schlüssel als auch den Wert des maximalen Eintrags benötigen.