А как по другому можно реализовать?
Есть два метода:
1) Разделить команды на группы. Например, на сервере 250 команд и среди всех этих команд на первой букве стоит 10 разных символов (для каждого символа по 25 команд, которое начинаются с этой буквы). Тогда вместо 250 (в худшем случае) проверок мы определяем группу (по первой букве) - это 10 проверок, опять же, все в худшем случае, и затем ищем команду уже внутри группы - 25 проверок. Итого: 35 сравнений из 250. Разница чувствуется?
2) Бинарный поиск. Команды в массиве записываем по алфавиту. Таким образом, когда человек написал первую букву - мы сравниваем ее с командой по-середине массива. Таким образом, мы сразу определяем в какой части массива (первой половине или второй) интересующие нас команды (они ж по алфавиту). И так много раз. За первый раз отсеем 125 команд, за второй 62.5 (62) и так далее. Тоже намного быстрее, в таком случае чисто проверок будет < 10