Страницы

Поиск по вопросам

четверг, 30 мая 2019 г.

Поиск всех значений в TreeMap c “неполным” ключом

Доброго времени суток. Нужен совет, как найти все значения в TreeMap с "неполным" ключом. Допустим имеются какие то значения с ключами "Book","Boom","Trap"... При ключе "Boo" должен выводить значения у которых ключ начинается на этот кусок.
Пробовал использовать методы ceilingKey(), floorKey(), higherKey(), lowerKey(), но столкнулся с проблемой, выводит лишь одно значение. Попробовал удалять элементы после получения, тогда он выводит весь TreeMap пока не опустеет.
Может есть какой то более подходящий подход для этой задачи ?


Ответ

На англоязычном SO есть несколько таких вопросов с ответом
Идея такая: используем метод subMap, первым параметром передаем наш префикс (или как вы говорите "неполный ключ"), вторым параметром передаем этот же неполный ключ, только с измененным последним символом, который на единицу больше предыдущего (либо можно просто в конец "неполного ключа" дописать Character.MAX_VALUE).

Комментариев нет:

Отправить комментарий