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方式效率更好
}
}
java中过多if-else分支语句的优化方案的更多相关文章
- 原来java中也有类似goto语句的标签啊--java label标签
http://blog.sina.com.cn/s/blog_6d5354cd0100xjg7.html ——————————————————————————————————————————————— ...
- ★Java语法(六)——————————分支语句
1. if 语句 格式用法: if(布尔表达式) { 语句: } 2. if……else 语句 格式用法: if(表达式) { 语句1: } else { 语句2: } 3.if……else i ...
- java中的字符串简介,字符串的优化以及如何高效率的使用字符串
简介 String最为java中最重要的数据类型.字符串是软件开发中最重要的对象之一,通常,字符串对象在内存中总是占据着最大的空间块.所以,高效处理字符串,将提高系统的整个性能. 在java语言中,S ...
- java、JavaScript获取微信用户信息登录优化方案
1.获取微信用户信息要调用微信的好几个接口,再加上自己系统的接口就会变的很慢,影响用户体验,之前走过的弯路我就不赘述了,直接说新的方案. 2.第一步都是向微信发起获取用户code请求: 请求接口:ht ...
- java中异常处理finally和return语句的执行顺序
finally代码块的语句在return之前一定会得到执行 如果try块中有return语句,finally代码块没有return语句,那么try块中的return语句在返回之前会先将要返回的值保存, ...
- Java中if else条件判断语句的执行顺序
学习目标: 掌握 if else 条件判断的使用 学习内容: 1.if语法 if(boolean表达式) { 语句体; } if后面的{}表示一个整体-代码块,称之为语句体,当boolean表达式为t ...
- java中常规使用的mysql语句
1.登录型校验 limit 1,例如: SELECT `password`FROM workerWHERE phone = 18611406603LIMIT 1 结果无值,不需验证;有值,校验 2.存 ...
- 关于Java导出100万行数据到Excel的优化方案
1>场景 项目中需要从数据库中导出100万行数据,以excel形式下载并且只要一张sheet(打开这么大文件有多慢另说,呵呵). ps:xlsx最大容纳1048576行 ,csv最大容纳1048 ...
- web性能优化之---JavaScript中的无阻塞加载性能优化方案
一.js阻塞特性 JS 有个很无语的阻塞特性,就是当浏览器在执行JS 代码时,不能同时做其他任何事情,无论其代码是内嵌的还是外部的. 即<script>每次出现都会让页面等待脚本的解析和执 ...
随机推荐
- Jenkins Vue项目自动构建以及构建后续操作
Jenkins在linux上的安装教程:http://www.ityouknow.com/springboot/2017/11/11/springboot-jenkins.html 另外,关于在win ...
- 【运维】在Windows上使用IIS方向代理配置Websocket
最近在做小程序的项目,微信要求所有数据请求通道都要走https或wss.而我们的项目建设如下: api基于C#的MVC webapi开发. websocket基于Nodejs的thinkjs框架开发. ...
- 项目管理目标:添加人员并向其分配任务 - Project
已剪辑自: https://support.office.com/zh-cn/article/%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86%E7%9B%AE%E6%A0%8 ...
- 各种输出速度比较(小白应该来看看,dalao绕道)
其实这个是修改之后测试的速度,因为之前测量方式有一点问题,经过@复杂的哈皮狗 的正确提醒后更正了一下 之前我一直以为各种输出速度比较是putchar>printf>cout; 但事实上并不 ...
- gcd前缀和-蒜头君的数轴
题目: 今天蒜头君拿到了一个数轴,上边有 n个点,但是蒜头君嫌这根数轴不够优美,想要通过加一些点让它变优美,所谓优美是指考虑相邻两个点的距离,最多只有一对点的距离与其它的不同. 蒜头君想知道,他最少需 ...
- AGC001F - Wide Swap
Description 给你一个长度为$n$的排列,每次可以交换$|i-j|\geq K$并且$|a_i-a_j|=1$的数对,问你经过若干次变换后最小字典序的排列是啥 Solution 对$a$做一 ...
- 微信跳转,手机WAP浏览器一键超级跳转微信指定页面
微信跳转,手机WAP浏览器一键超级跳转微信指定页面 这篇文章主要介绍了如何在手机浏览器wap网页中点击链接跳转到微信界面,需要的朋友可以参考下 先说第一种,最简单的唤起微信协议,weixin://主流 ...
- python学习笔记(3)
.................................................................................................... ...
- 微信网页悬浮窗交互效果的web实现
一.微信的悬浮窗交互效果 微信更新后,发现多了个悬浮窗功能.公众号阅读,网页浏览回退后默认会出现.再点击,可以回到刚才阅读的地方.于是,再也不会遇到回复老婆的信息,再切换回来重新找刚才阅读东西的麻烦了 ...
- 关于gulp-sftp上传到服务器
首先下载npm模块 npm install --save-dev gulp gulp-sftp webpack del gulp-sftp 上传服务器主要依赖 gulp.webpack必备 del 是 ...