我们知道switch case可以让未知的参数按照规定的方法执行,例如:去一个餐厅吃饭,你说吃大米饭,食堂阿姨就给你打大米饭;你说吃面条,食堂阿姨就给你打面条;又或者吃包子、胡辣汤等等,你想吃的饭就是变量,食堂阿姨提前做好的饭就是case,一个变量对应一个方法这就是Case的用途。
1.场景还原:
可是我们知道的美食有千万种,我不可能每一种都case一次,这代码工程忒大了吧,如下:
2.优化方案
那么针对多条件筛选能否优化,3到5个case一下没关系,10个百个就有点过分了,例如遍历城市地名的时候,你去case吧,费力不讨好,下面废话不多说,看看优化方法:
网上吵得方法好多种:映射(对象映射、数组映射)、map、双数组,反正各有所长,也各有弊端,有的就喜欢用switch,有的就喜欢if else一直嵌套下去,还是萝卜白菜各有所爱,没办法说谁好谁不好!
我个人觉得obj对象映射挺好的,比较清晰简单一点,数组映射会出现各种各样的“事故”,map又添加一堆匹配规则令人头疼,双数组利于下标匹配index和值,也容易出问题。估计和我当前的技术水平有问题吧,站的高度低,眼界就低,或许在大佬眼中,这都是小事,分分钟解决各种bug。
当然一直else if遍历下去的循环体也可以用这样的优化方案,结果是一样的