有关使用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());
            }
        }
    }
相关文章
|
6月前
|
算法 测试技术 C++
【C++】map&set的底层结构 -- AVL树(高度平衡二叉搜索树)(下)
【C++】map&set的底层结构 -- AVL树(高度平衡二叉搜索树)(下)
|
6月前
|
C++ 容器
【C++】map&set的底层结构 -- AVL树(高度平衡二叉搜索树)(上)
【C++】map&set的底层结构 -- AVL树(高度平衡二叉搜索树)(上)
|
6月前
|
存储 搜索推荐 C++
【C++高阶(二)】熟悉STL中的map和set --了解KV模型和pair结构
【C++高阶(二)】熟悉STL中的map和set --了解KV模型和pair结构
|
6月前
|
存储 算法 C++
【C++ 包装器类 map】C++ 标准库(std)中的map结构 哈希表(unordered_map)和黑红树(map)教程
【C++ 包装器类 map】C++ 标准库(std)中的map结构 哈希表(unordered_map)和黑红树(map)教程
453 1
|
6月前
|
存储 算法 C++
【C++ map结构 】std::map 和 std::unordered_map 在使用上的差异
【C++ map结构 】std::map 和 std::unordered_map 在使用上的差异
93 0
|
前端开发
前端学习笔记202305学习笔记第二十七天-什么是对象结构 set map之8
前端学习笔记202305学习笔记第二十七天-什么是对象结构 set map之8
44 0
|
前端开发
前端学习笔记202305学习笔记第二十五天-什么是对象结构 set map之4
前端学习笔记202305学习笔记第二十五天-什么是对象结构 set map之4
57 0
|
6月前
|
存储 自然语言处理 C++
【C++】树型结构关联式容器:map/multimap/set/multisetの使用指南(27)
【C++】树型结构关联式容器:map/multimap/set/multisetの使用指南(27)
|
Java 数据库
Map+函数式接口方法解决if-else
Map+函数式接口方法解决if-else
|
前端开发
前端学习笔记202305学习笔记第二十八天-什么是对象结构 set map之13
前端学习笔记202305学习笔记第二十八天-什么是对象结构 set map之13
40 0
前端学习笔记202305学习笔记第二十八天-什么是对象结构 set map之13