当前位置:首页 > 开发 > 编程语言 > Java > 正文

java 高性能运算--switch 替代方案

发表于: 2014-10-14   作者:annan211   来源:转载   浏览次数:
摘要:   Java 原生的语法糖中存在很多种 易于阅读,效率略低的方案,我们可以适当改写。   比如 switch 语法糖。 int re = 0; for(int i=0;i<10000000;i++){ re = switch(i); } protected int switch(int z){ int i = z%10+1

  Java 原生的语法糖中存在很多种 易于阅读,效率略低的方案,我们可以适当改写。

  比如 switch 语法糖。



int re = 0;
for(int i=0;i<10000000;i++){
  re = switch(i);
}

protected int switch(int z){
  int i = z%10+1;
switch(i){
  case 1: return 3;
  case 2:return 6;
case 3:return 7;
case 4:return 8;
case 5:return 10;
case 6:return 16;
case 7:return 18;
case 8:return 20;
default:return -1;
}
}


switch 本身的性能并不差,但是仍存在可以提高的空间,尤其在随机次数比较大的高频调用中。

我们可以换一种思路,来取得比较可观的效果。

  int re = 0;
int [] sw = new int[]{3,6,7,8,10,16,18,20};
for(int i=0;i<100000000;i++){
   re = arrayInt(sw,i);
}

protected int arrayInt(int []sw,int z){
  int i = z%10+1;

  if(i>7 || i<1){
   return -1;// 缺省值
}else{
  return sw[i];
}
}


这种思路 相比与switch 分支判断来说,效率有所提升,因为对数据的随机访问是非常快的。

java 高性能运算--switch 替代方案

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
SparseArray是 Android框架独有的类,在标准的JDK中不存在这个类。它要比 HashMap 节省内存,某些情
简介:轻量封装Ibatis3 因为本人在国内最大的电子商务公司工作期间,深感一个好的分表分库框架可以
简介:轻量封装Ibatis3 因为本人在国内最大的电子商务公司工作期间,深感一个好的分表分库框架可以
简介:轻量封装Ibatis3 因为本人在国内最大的电子商务公司工作期间,深感一个好的分表分库框架可以
简介:轻量封装Ibatis3 因为本人在国内最大的电子商务公司工作期间,深感一个好的分表分库框架可以
  在图像处理领用,photoshop当然是第一选择,但是正版的photoshop实在是贵……官网给出的价格500
google被wall,每次升级wp都是个烦心事。 360网站最新服务:前端公共库、Google公共库以及Google字体
在 To 注释 or not 注释, that is a question 中,我认为程序中的内部注释——如果百分百准确地话—
以下内容在生产环境中已经用到一部分。 1.智能DNS: 采用Dnspod处理智能定向 或者 自建dns服务器记录
虽然 Hadoop 在分布式数据分析方面备受关注,但是仍有一些替代产品提供了优于典型 Hadoop 平台的令
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号