Ich versuche, key
mit Mindestwert in Map
unten gezeigten zu finden.Effiziente Weise, Min-Wert in Karte zu finden
Map<Node, Integer> freeMap = new TreeMap<>();
Node minNode = null;
for (Map.Entry<Node, Integer> entry : freeMap.entrySet()) {
if (minNode == null) {
minNode = entry.getKey();
} else {
if (entry.getValue() < freeMap.get(minNode)) {
minNode = entry.getKey();
}
}
}
Erstens gibt es ein straight forward Weg key
mit mindestens value
als die Verwendung von foreach
Schleife zu finden. Zweitens, können Sie einen alternativen Datenstrukturansatz vorschlagen, der zum Speichern eines Node
Objekts und eines zugehörigen Integer
Werts verwendet werden kann, sodass ich entry
mit dem Minimalwert in der konstanten Zeit O (1) abrufen kann.
Ziel ist es Zeit, Komplexität zu verbessern der Code. –
http://docs.oracle.com/javase/6/docs/api/java/util/SortedMap.html Vielleicht eine SortedMap? –
@ChrisBolton 'SortedMap' sortiert' Keys' nicht 'values'. nicht wahr? –