При реализации коммутаторов можно сделать много оптимизаций для производительности, иначе вам придется перечислить все переключатели до тех пор, пока они не совпадут.
Что бы я сделал здесь, есть основной набор переключателей для первого символ, а затем вложенные переключатели внутри, поэтому, если выбор был z, ему не нужно проверять каждое имя сначала
switch(FIRSTCHAR){
case A: switch(index){
case 0: ..... break;
etc
}
break;
case B://do the same
}
. Другой способ заключается в том, чтобы разбить оператор коммутатора на меньшие операторы равного размера. Это быстрее из-за того, как скомпилирован байт-код (ref настройки производительности Java - shirazi)