Существует лот эффективных способов хранения словарей.Использование тяжеловесных вещей, таких как объекты Java по умолчанию HashMap и String, не является одним из них.
Так что, конечно, вы можете избавиться от синхронизированного ключевого слова и попытаться немного увеличить скорость влево и вправо, работая с особенностями Java.
Конечно, карта содержит - это O (1) ... Но размер карты, когда вы помещаете в нее миллионы строк, не равен O (1);)
Пища для размышления: определение наличия слова с использованием, скажем, Trie, вероятно, будет быстрее, чем простое вычисление хеш-кода String (я не говорю, что trie - это то, что вам нужно:все, что я говорю: есть больше, чем «давайте используем HashMap, это O (1), поэтому вы не можете победить это» -meets-the-eye.
И яможет сказать вам, что, скажем, Google 'translate' и Google 'find-as-you-type' определенно не реализованы путем хранения миллионов объектов Java String в I-need-constant-resizing-and-I-resizeочень медленно Java HashMaps.
Каковы ваши требования? Сколькоords?Сколько языков нужно поддерживать?