У меня есть HashMap<Integer, Float>
с записями:ключа в HashMap Получить с диапазоном чисел в качестве значения
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
Пусть Предположу, что я хочу ключ к Float 0,465 (который не является текущим значением). 0.465
находится между 0.447
и 0.487
, поэтому я хотел бы получить ключ 10
.
Первая мысль, которая пришла мне в голову, была достигнута с помощью инструкций 15 if/else if или с оператором switch. Но, на мой взгляд, это было бы не очень элегантно и практично.
Есть ли другой способ сделать это?
Отмените свою карту и используйте [NavigableMap] (http://docs.oracle.com/javase/7/docs/api/java/util/NavigableMap.html). – khachik
У меня просто есть список поплавков. Чтение 15 поплавков было бы достаточно быстрым. –
Я вижу, что значения «сортируются» по отношению к ключам. Вам действительно нужен HashMap? Глядя на этот пример, я вижу, что ключи являются «индексами» '' List'/'Array' + 1, а значениями являются значения под этим индексом. – Xeon