#java #android
Доброго времени суток. Нужен совет, как найти все значения в TreeMap с "неполным" ключом. Допустим имеются какие то значения с ключами "Book","Boom","Trap"... При ключе "Boo" должен выводить значения у которых ключ начинается на этот кусок. Пробовал использовать методы ceilingKey(), floorKey(), higherKey(), lowerKey(), но столкнулся с проблемой, выводит лишь одно значение. Попробовал удалять элементы после получения, тогда он выводит весь TreeMap пока не опустеет. Может есть какой то более подходящий подход для этой задачи ?
Ответы
Ответ 1
На англоязычном SO есть несколько таких вопросов с ответом Идея такая: используем метод subMap, первым параметром передаем наш префикс (или как вы говорите "неполный ключ"), вторым параметром передаем этот же неполный ключ, только с измененным последним символом, который на единицу больше предыдущего (либо можно просто в конец "неполного ключа" дописать Character.MAX_VALUE).Ответ 2
Судя по en-SO можно так: public SortedMapgetByPreffix(NavigableMap myMap, String preffix ) { return myMap.subMap( preffix, preffix + Character.MAX_VALUE ); }
Комментариев нет:
Отправить комментарий