Если время поиска действительно является единственной важной вещью, то во время запуска, когда у вас есть все строки, вы можете вычислить совершенный хеш над ними и использовать это как функцию хеширования для хеш-таблицы.
Проблема в том, как вы выполняете хеш - любой вид вычислений на основе байт-кода, вероятно, будет медленнее, чем использование фиксированного хеша и обработка коллизий.Но если все, что вас волнует, это скорость поиска, то вы можете потребовать, чтобы у вашего процесса были необходимые привилегии для загрузки и выполнения кода.Напишите код для идеального хэша, запустите его через компилятор, загрузите его.Проверьте во время выполнения, действительно ли он быстрее для этих строк , чем ваша самая известная структура, независимая от данных (которая может быть Trie, хеш-таблицей, массивом Джуди или деревом отображения, в зависимости от деталей реализации и вашего типичного доступашаблоны), и если не отступить к этому.Медленная настройка, быстрый поиск.
Практически никогда не бывает так, чтобы скорость была единственным критическим моментом.