Хотя это событие было предсказуемо, после коммерциализации MySQL и OpenOffice, верить в него не хотелось. Похоже oracle хочет разделить версии JVM на "free" и "premium", подробнее тут.
суббота, 6 ноября 2010 г.
среда, 3 ноября 2010 г.
Поиск по ключу входящему в числовой диапазон.
Дана таблица по которой, в зависимости от опыта игрока, определяется его уровень:
Диапазон опыта Уровень
0 < exp <= 12 1
12 < exp <= 30 2
30 < exp <= 67 3
... ...
231 < exp <= 300 10
Задача: реализовать алгоритм поиска уровня.
Для решения задачи я задействую класс java.util.TreeMap
. Почему этот класс? Все просто, он реализует важный интерфейс - java.util.NavigableMap
, появившийся с версии Java 1.6. Его метод
Map.Entry<K,V> ceilingEntry(K key)
как раз позволяет найти запись в map-е удовлетворяющую условию K(n) < key <= K(n+1) и при этом будет содержать значение по ключу K(n+1). Таким образом, остается составить map-у из записей: ключ - макс. значение опыта на уровне, значение - уровень. Код решения:
Для наглядности я захардкодил map-у в коде, на деле же она создается из xml.
Подписаться на:
Сообщения (Atom)