Sto cercando di trovare key
con il valore minimo in Map
mostrato di seguito.Modo efficiente per trovare il valore minimo in Mappa
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();
}
}
}
In primo luogo, C'è un modo dritto in avanti per trovare key
con il minimo value
rispetto all'utilizzo foreach
ciclo. In secondo luogo, puoi suggerire un approccio alternativo alla struttura dei dati che può essere utilizzato per memorizzare un oggetto Node
e un valore Integer
associato, in modo da poter recuperare entry
con un valore minimo in tempo costante O (1).
L'obiettivo qui è quello di migliorare il tempo di complessità il codice. –
http://docs.oracle.com/javase/6/docs/api/java/util/SortedMap.html Forse una SortedMap? –
@ChrisBolton 'SortedMap' ordinerà' Keys' not 'values'. non è vero? –