Я работаю с TreeMap of Strings TreeMap
, и использую его для реализации Dictionay of words.
Затем у меня есть коллекция файлов, и я хотел бы создать представление каждого файла в векторном пространстве (пространстве слов), определяемом словарем.
Каждый файл должен иметь вектор, представляющий его со следующими свойствами:
Итак, моя идея состоит в том, чтобы использовать Vector
для реализации этих векторов. (Этот способ представления документов в коллекции называется Boolean Model - http://www.site.uottawa.ca/~diana/csi4107/L3.pdf)
Проблема, с которой я столкнулся в процедуре создания этого вектора, заключается в том, что мне нужен способ найти позицию слова в словаре, что-то вроде этого:
String key;
int i = get_position_of_key_in_Treemap(key); <--- purely invented method...
1) Есть ли какой-нибудь метод, подобный этому, который я могу использовать на TreeMap? Если нет, не могли бы вы предоставить код, который поможет мне реализовать его самостоятельно?
2) Существует ли итератор на TreeMap (он упорядочен по алфавиту ключей), с помощью которого я могу получить позицию?
3) В конце концов, должен ли я использовать другой класс для реализации словаря? (Если вы думаете, что с TreeMap я не смогу сделать то, что мне нужно) Если да, то какой?
Спасибо заранее.
ДОБАВЛЕННАЯ ЧАСТЬ:
Решение, предложенное dasblinkenlight, выглядит хорошо, но имеет проблему сложности (линейную с размерностью словаря из-за копирования ключей в массив), и идея делать это для каждого файла неприемлема.
Есть еще идеи по моим вопросам?