Как реализовать словарь (Trie vs HashTable и важные вопросы)?

Я встречал несколько вопросов и статей, в которых говорилось, что реализация словаря в java лучше всего выполняется с помощью попыток. Но большинство из них, на мой взгляд, не касалось важных вопросов. Итак, следующая задача из реального мира:

Предположим, мне нужно реализовать словарь (скажем, что-то вроде Lingvo, но попроще) с использованием java. Для моей конкретной задачи необходимо хранить определения слов и выполнять быстрый поиск по словарю.

Пожалуйста, ответьте на следующие вопросы:

  • Какую структуру данных мне тогда использовать (Trie или HashTable)?
  • Как это ( поиск, datastruct), если мне нужно, чтобы словарь был нечувствительным к регистру?
  • Что, если я хочу, чтобы он (поиск, словарь) был чувствителен к регистру?

PS: Примеры кода приветствуются. :)

Заранее спасибо за ответы.

ОБНОВЛЕНИЕ : Если мы говорим о стандартных реализациях DS в java, правда ли, что HashTable будет лучшим вариантом для этой конкретной задачи? Почему не HashMap, TreeMap или LinkedHashMap?

15
задан Denys S. 14 January 2011 в 13:40
поделиться