РЕДАКТИРОВАТЬ прекратить это голосование: я неправильно понял вопрос.ОП не за словарем проверяет написание слов / предложения / поиск типа вперед / автозаполнение / что угодно (я думал, что он был тем, кем он был).OP - после сопоставления ключ / значение, где для каждого слова есть определение.
Проработав словари, я могу сказать, что вы используете неправильный подход.
Это не такпросто как выбор между хеш-таблицей или деревом.
Вы упомянули Lingvo: это намного больше, чем просто таблица.
Хотите ли вы, чтобы близкое совпадение было предложено?Затем вам могут понадобиться такие вещи, как генерация перестановок на том, что пользователь ввел, и для каждой перестановки посмотрите, существует ли она в Dico: если это произойдет, вам нужно будет вычислить его «Расстояние редактирования Левенштейна» и предложить сначала слова, которыекратчайший светодиод.
Хотите ли вы, чтобы наиболее вероятные совпадения были автоматически завершены / предложены (например, что делает Google)?Тогда вам понадобится очень продвинутая структура данных, такая как BK-дерево (в основном, дерево светодиодов, если я правильно понимаю).
Сколько слов будет в вашем словаре?Вы не сможете использовать словарь, состоящий из 400 000 слов, используя строки и другие тяжелые объекты / структуру данных Java без серьезного снижения производительности (еще раз: словарь - это больше, чем просто одна хеш-таблица,словарь обычно включает несколько структур данных).Это не легко поместится в память компьютера ваших пользователей.Существуют известные способы поиска слов, в которых каждое отдельное слово может быть упаковано менее чем в 15 бит на слово (менее 15 бит на слово, вы правильно прочитали).
В дополнение к этому вы можетехочу сделать предложение, основанное на фонетике: например, с использованием двойного метафона.
Словарь, как в «словаре слов», равен , поэтому гораздо больше, чем просто таблица ключ / значение,Это действительно сложный зверь, из-за каких функций пользователь должен исключить и из-за количества задействованных данных.Просто английский + несколько специализированных терминов по доменам, медицинский, компьютерный, что угодно.даст вам сотни тысяч данных: попробуйте поместить их в Java HashMap и ... Kaboom!