Страницы

Поиск по вопросам

понедельник, 10 декабря 2018 г.

Что быстрее при использовании много if, if-else или switch

В проекте есть много ситуаций где нужно проверить выбранное действие.
Что оптимальнее использовать:
Много If
if (...){} if (...){} if (...){}
If-else
if (...){} else if (...){} else if (...){} else if (...){} ...
Switch
switch(...){ case ONE: break; case TWO: break; case THREE: break; ... ... case N: break; }


Ответ

Оператор switch, как правило (то есть когда нетривиальный, в тривиальных случаях JIT его разберет на if/else) - транслируется в байткод tableswitch или lookupswitch
Производительность tableswitch O(1), а lookupswith O(log N) (то есть сравним с if/else/if)
P.S. перечень байткод инструкций

Комментариев нет:

Отправить комментарий