Ho una LinkedHashMap. Voglio ottenere il Foo di indice N. Esiste un modo migliore di fare questo, oltre l'iterazione fino a quando trovo ?:Iterate per trovare una voce Mappa in un indice?
int target = N;
int index = 0;
for (Map.Entry<String, Foo> it : foos.entrySet()) {
if (index == target) {
return it.getValue();
}
index++;
}
devo fare ottenere elementi casuali dalla mappa da un indice di circa 50 volte per qualche operazione La mappa avrà circa 20 elementi in essa contenuti.
Grazie
Hai speso O (N) creando una copia di tutte le chiavi nella mappa. Se qualcosa viene inserito nella mappa, la tua copia non verrà aggiornata. * È solo O (1) per le query successive dopo la copia iniziale *. – tucuxi