Для двух значений переключение будет быстрее.Хэш-карта всегда по крайней мере проверяет равенство вашего ключа, поэтому она не может пройти один или два теста .equals ().
Для многих значений хэш будет быстрее.Переключатель должен проверять каждое значение, пока не найдет правильное.
Для небольшого числа значений (скажем, до 10 или около того), предпочитайте переключатель.Это будет легче и быстрее.
Для большого числа значений (более 50), предпочтите хеш.Хэш не должен проверять все значения, поэтому он будет быстрее переключателя при увеличении количества значений.Для 10 ~ 50 значений я бы посоветовал вам делать то, что вы считаете более читабельным, поскольку производительность будет примерно одинаковой.
Теперь, если вы смотрите на предельную производительность статических строк, известных во время компиляции, вы можетеПосмотрите на инструменты для генерации кода, такие как gnuperf.
Если вы не знаете свои строки во время компиляции, но знаете, что они будут достаточно короткими и прилично одинаковыми по длине, или с общими префиксами, вы, вероятно, будете быстрее всехструктура данных Trie.
Если вы хотите сохранить производительность на большом количестве очень разнородных строк или на объектах, которые могут не быть строками, то HashMap - это путь.Это довольно непобедимо, когда количество объектов очень велико (в миллиардах и более).