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