有关使用Map结构替换掉复杂的if-else结构【项目使用】
很多业务场景下需要多分支语句进行条件判断,导致代码显得很臃肿,使用Switch case也可以解决对应问题,但是研究发现,一般分支低于5个的使用if -else结构效率比switch case效率要高,但是!不管是多少分支,我们都可以使用Map这个结构替换掉对应复杂的分支。
public static void main(String[] args) { Map<String, String> processFlagMap = new HashMap<String, String>(); //初始化map initMap(processFlagMap); processFlagByMap("FLAG_B", processFlagMap); } private static void initMap(Map<String, String> processFlagMap) { //map中key存放对应的条件,value存放对应需要的逻辑处理,可以是方法的返回值,如果逻辑复杂,可以自定义方法,然后将返回值放到value即可 processFlagMap.put("FLAG_A", "do A1"); processFlagMap.put("FLAG_B", "do A2"); processFlagMap.put("FLAG_C", "do A3"); processFlagMap.put("FLAG_D", "do A4"); processFlagMap.put("FLAG_E", "do A5"); } private static void processFlagByMap(String flagName, Map<String, String> processFlagMap) { for (Map.Entry<String, String> processFlagEntry : processFlagMap.entrySet()) { if (processFlagEntry.getKey().equals(flagName)) { System.out.println(processFlagEntry.getValue()); } } }