zoukankan      html  css  js  c++  java
  • java中过多if-else分支语句的优化方案

    利用Map优化过的的if-else分支

    package com.taiping.test;

    import java.util.HashMap;
    import java.util.Map;

    public class Test {

      public static void main(String[] args) throws Exception {

        int seatCount=2; //需要进行判断的变量

        String projectCode;//判断之后赋值的变量

        String type = "A";

        /**优化之前,逻辑判断太多,效率低下*/
        if(type.equals("A")){
          if(seatCount == 2){
            projectCode = "0001";
          }else if(seatCount == 4){
            projectCode = "0002";
          }else if(seatCount == 5){
            projectCode = "0003";
          }else if(seatCount == 6){
            projectCode = "0004";
          }else if(seatCount == 7){
            projectCode = "0005";
          }
        }else{
          if(seatCount == 2){
            projectCode = "0006";
          }else if(seatCount == 4){
            projectCode = "0007";
          }else if(seatCount == 5){
            projectCode = "0008";
          }else if(seatCount == 6){
            projectCode = "0008";
          }else if(seatCount == 7){
            projectCode = "0010";
          }
        }


        /**优化之后,采用map方式,简洁高效*/
        Map<Integer, String> map = new HashMap<Integer, String>();

        if(type.equals("A")){
          map.put(2, "0001");
          map.put(4, "0002");
          map.put(5, "0003");
          map.put(6, "0004");
          map.put(7, "0005");
        }else{
          map.put(2, "0006");
          map.put(4, "0007");
          map.put(5, "0008");
          map.put(6, "0009");
          map.put(7, "0010");
        }

        projectCode = map.get(seatCount);//采用map的get方式取值

        System.out.println(projectCode);

      //优化前与优化后结果一致,map方式效率更好
      }  

    }

    作者:小鱼
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    Android课程---Activity的跳转与传值(转自网上)
    Android课程---Activity中保存和恢复用户状态
    Android课程---Activity 的生命周期
    Android课程---Activity的创建
    初学JAVA随记——练习写代码(8种数据类型)
    资料——UTF-8
    资料——ASCII码
    初学JAVA随记——8bit(1byte)的取值范围是+127到—128
    初学JAVA随记——变量与常量
    进制转换
  • 原文地址:https://www.cnblogs.com/sinosoft/p/10444930.html
Copyright © 2011-2022 走看看