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方式效率更好
      }  

    }

    作者:小鱼
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    HDU 2844 Coins(多重背包)
    HDU 4540 威威猫系列故事——打地鼠(DP)
    Codeforces Round #236 (Div. 2)
    FZU 2140 Forever 0.5
    HDU 1171 Big Event in HDU(DP)
    HDU 1160 FatMouse's Speed(DP)
    ZOJ 3490 String Successor
    ZOJ 3609 Modular Inverse
    ZOJ 3603 Draw Something Cheat
    ZOJ 3705 Applications
  • 原文地址:https://www.cnblogs.com/sinosoft/p/10444930.html
Copyright © 2011-2022 走看看