Мой вопрос очень простой, но я сам не смог найти решение.
Я привык писать алгоритмы на C ++. Там я очень часто использую структуру std::map
вместе со всеми вспомогательными методами, которые она предоставляет.
Этот метод возвращает итератор к первому элементу карты с ключом> = к ключу, указанному в качестве параметра. Пример:
map<int, string> m;
// m = { 4 => "foo", 6 => "bar", 10 => "abracadabra" }
m.lower_bound(2); // returns iterator pointing to <4, "foo">
m.lower_bound(4); // returns iterator pointing to <4, "foo">
m.lower_bound(5); // returns iterator pointing to <6, "bar">
Круто то, что карта C ++ основана на красно-черных деревьях, поэтому запрос является логарифмическим (O(log n)
).
Теперь мне нужно реализовать определенный алгоритм в Java. Мне нужна функциональность, подобная той, что я только что описал. Я знаю, что могу использовать TreeMap
, который реализован в упорядоченном дереве. Однако я не нахожу эквивалента метода lower_bound
. Есть ли такие?
Большое спасибо за вашу помощь.