有关使用Map结构替换掉复杂的if-else结构【项目使用】

简介: 有关使用Map结构替换掉复杂的if-else结构【项目使用】

有关使用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());
            }
        }
    }
相关文章
|
10月前
|
存储
ES6中新增的Set、Map两种数据结构怎么理解以及操作方法
Set是一种叫做集合的数据结构,Map是一种叫做字典的数据结构
|
存储 人工智能 Java
第一个动态结构:链表
大家好,我是王有志。今天我们一起学习线性表中的第二种数据结构:链表,也是真正意义上的第一个动态数据结构。
88 0
第一个动态结构:链表
|
JavaScript 前端开发 API
for 循环不是目的,map 映射更有意义!【FP探究】
在 JavaScript 中,由于 Function 本质也是对象(这与 Haskell 中【函数的本质是值】思路一致),所以我们可以把 Function 作为参数来进行传递!
|
存储 算法 前端开发
嵌套遍历同一个数组的时候,试试Map优化
嵌套遍历同一个数组的时候,试试Map优化
122 0
|
存储 C语言 数据安全/隐私保护
CE修改器入门:查找共享代码
本关我们将学习共享代码,在C语言中角色属性都是以结构体的方式进行存储的,而结构体所存储的信息都是连续性的,这一关我们将会解释如何处理游戏中的共用代码,这种代码是通用在除了自己以外的其他同类型对像上的 常常你在修改游戏的时候, 你找到了一个单位的健康值 或是你自己角色的生命值, 你会发现一种情况: 如果你把生命值相关代码移除的话,其结果是你的角色无敌, 但你的敌人也无敌了,这就是共享代码搞的鬼。
382 0
CE修改器入门:查找共享代码
|
安全 Go 索引
Go-映射类型详解(遍历、增删改查、判断相等、内存等)
Go-映射类型详解(遍历、增删改查、判断相等、内存等)
176 0
Go-映射类型详解(遍历、增删改查、判断相等、内存等)
|
存储 Go
Go-切片类型详解(遍历、内存、追加、插入、删除等)
Go-切片类型详解(遍历、内存、追加、插入、删除等)
101 0
Go-切片类型详解(遍历、内存、追加、插入、删除等)
|
C++
C++中,类如果包含map/list等对象,慎用memset(0)
C++中,类如果包含map/list等对象,慎用memset(0)
75 0
集合或映射迭代过程进行删除或修改操作的时候会导致并发异常
集合或映射迭代过程进行删除或修改操作的时候会导致并发异常
130 0
集合或映射迭代过程进行删除或修改操作的时候会导致并发异常
使用「单向链表 & 标记删除」维护继承顺序
使用「单向链表 & 标记删除」维护继承顺序