Эквивалент map.lower_bound в C++ в Java

Мой вопрос очень простой, но я не смог найти решение сам.

Я привык писать алгоритмы на 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. Есть такое?

Большое спасибо за помощь.

8
задан Boris Strandjev 7 March 2012 в 09:24
поделиться