Страницы

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

понедельник, 9 марта 2020 г.

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

#java #android


Доброго времени суток. Нужен совет, как найти все значения в TreeMap с "неполным"
ключом. Допустим имеются какие то значения с ключами "Book","Boom","Trap"... При ключе
"Boo" должен выводить значения у которых ключ начинается на этот кусок. 

Пробовал использовать методы ceilingKey(), floorKey(), higherKey(), lowerKey(), но
столкнулся с проблемой, выводит лишь одно значение. Попробовал удалять элементы после
получения, тогда он выводит весь TreeMap пока не опустеет. 

Может есть какой то более подходящий подход для этой задачи ?
    


Ответы

Ответ 1



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

Ответ 2



Судя по en-SO можно так: public SortedMap getByPreffix(NavigableMap myMap, String preffix ) { return myMap.subMap( preffix, preffix + Character.MAX_VALUE ); }

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

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