if-else和switch-case性能

  1. 针对具有N个选择型分支的语句:
  • if-else语法的最坏情况需要执行逐一N次条件按判断;
  • switch-case语句则仅需一次判断,switch-case是以空间换时间,将备选条件组织成特殊集合,提供随机访问能力,查询更高效。
  1. switch-case实现分类:Java的switch-case的底层实现又可分为lookupswitch和tableswitch两种方式
  • lookupswitch:基于数组实现,可以根据数组下标随机访访问到对应的分支,时间复杂度为O(1)。
  • tableswitch:基于跳表结构,维持了一个key-value集合,使用的是二分查找,时间复杂度为O(log n)。
  1. 实践中,若面对两个方案二选一时,优先选择switch-case,并列条件较多时尤其适合。
学习使我充实,分享给我快乐!
原文地址:https://www.cnblogs.com/JaxYoun/p/13642754.html