mam HashMap<Integer, Float>
z wpisami:klucz HashMap uzyskać z zakresu liczb jako wartości
1 -> 0.127
2 -> 0.167
3 -> 0.207
4 -> 0.247
5 -> 0.237
6 -> 0.327
7 -> 0.367
8 -> 0.407
9 -> 0.447
10 -> 0.487
11 -> 0.527
12 -> 0.567
13 -> 0.607
14 -> 0.647
15 -> 0.652
Niech załóżmy, że chcę klucz do Float 0,465 (co nie jest istniejąca wartość). 0.465
jest między 0.447
i 0.487
, więc chciałbym uzyskać klucz 10
.
Pierwsza myśl, która przyszła mi do głowy, była możliwa dzięki 15 instrukcjom if/else if lub instrukcjom switch. Moim zdaniem nie byłoby to jednak zbyt eleganckie i praktyczne.
Czy jest jakiś inny sposób na zrobienie tego?
Odwróć mapę i użyj [NavigableMap] (http://docs.oracle.com/javase/7/docs/api/java/util/NavigableMap.html). – khachik
Po prostu mam listę pływaków. Czytanie 15 pływaków byłoby wystarczająco szybkie. –
Widzę, że wartości są "posortowane" względem relacji kluczy. Czy naprawdę potrzebujesz HashMap? Patrząc na ten przykład widzę, że klucze są "indeksami" z 'List' /' Array' + 1, a wartości są wartościami pod tym indeksem. – Xeon