zoukankan      html  css  js  c++  java
  • 【日常摘要】- map与函数式编程篇

    • 日常使用中,要定义一个map,常用的是一个都是常量值作为key或者value,但是不满足一些特殊的需求,比如将value需要通过参数形式返回不同的值。

    • 有以下场景:

    	int num;
        Person person = new Person();
    	String desc = "";
        switch (num) {
                    case 1: 
                        desc = String.format("我要这么展示,name:%s",person.getName());
                        break;
                    case 2: 
                        desc = String.format("我要这么展示,name:,age:%s",person.getName(),person.getAge());
                        break;
                    default: 
                        break;
                }
    
    • 写起来很繁琐,那么可以通过map + 函数式的方式处理,那么上述代码可以调整为下面代码
        //调用
        public void method(){
            int num;
            Person person = new Person();
            String desc = PERSON_TYPE_MAP.get(num).apply(person);
        }
        
        
    	//定义一个map跟Function组合使用的map
        private final ImmutableMap<Integer, Function<Person, String>> PERSON_TYPE_MAP = ImmutableMap.<Integer, Function<Person, String>>builder()
                .put(1, person -> String.format("我要这么展示,name:%s", person.getName()))
                .put(2, person -> String.format("我要这么展示,name:,age:%s",person.getName(),person.getAge())
                .build();
    
    • 简洁很多,需要调加新的对应关系,直接在map里面再put便可。
  • 相关阅读:
    吴军博士《浪潮之巅》
    第十二周
    第十一周
    第十周
    第九周
    第四次作业
    第四周
    学习进度表
    世界是数字的
    第二阶段团队第八天成果。
  • 原文地址:https://www.cnblogs.com/lycsmzl/p/13516752.html
Copyright © 2011-2022 走看看