java如何替换switch
作者:BlueNight
时间:2023-04-28
浏览:2
替换switch关键字switch语句用于多条件判断,switch语句的功能类似于if-else语句,两者性能也差不多。因此,不能说switch语句会降低系统的性能。但是,在绝大部分情况下,switch语句还是有性能提升空间的。来看下面的例子:publicstaticvoidmain(String[]args){longstart=System.currentTimeMillis();intre=0;for(inti=0;i
替换switch
关键字 switch 语句用于多条件判断, switch 语句的功能类似于 if-else 语句,两者性能也差不多。因此,不能说 switch 语句会降低系统的性能。但是,在绝大部分情况下,switch 语句还是有性能提升空间的。
来看下面的例子:
public static void main(String[] args) { long start = System.currentTimeMillis(); int re = 0; for (int i = 0;i<1000000;i++){ re = switchInt(i); System.out.println(re); } System.out.println(System.currentTimeMillis() - start+"毫秒");//17860 } public static int switchInt(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 44; default:return -1; } }就分支逻辑而言,这种 switch 模式的性能并不差。但是如果换一种新的思路替代switch,实现相同的程序功能,性能就能有很大的提升空间。
public static void main(String[] args) { long start = System.currentTimeMillis(); int re = 0; int[] sw = new int[]{0,3,6,7,8,10,16,18,44}; for (int i = 0;i<1000000;i++){ re = arrayInt(sw,i); System.out.println(re); } System.out.println(System.currentTimeMillis() - start+"毫秒");//12590 } public static int arrayInt( int[] sw,int z){ int i = z%10+1; if (i>7 || i<1){ return -1; }else { return sw[i]; } }以上代码使用全新的思路,使用一个连续的数组代替了 switch 语句。因为对数据的随机访问是非常快的,至少好于 switch 的分支判断。通过实验,使用switch的语句耗时17860ms,使用数组的实现只耗时12590ms,提升了5s多。在软件开发中,换一种思路可能会取得更好的效果,比如使用数组替代switch语句就是就是一个很好的例子。
作者最新文章
blender贴图文件在哪里查找与打开教程
2026-10-11 09:08
3ds Max动画播放卡顿或渲染跳帧的解决方法
2026-10-02 17:00
联发科天玑9600 Pro首发2nm:能效与游戏渲染技术详解
2026-09-08 16:54
Excel基础操作指南:数据录入、格式设置、公式应用与打印预览
2026-09-02 12:47
动画制作全流程:从故事板到关键帧与最终输出
2026-09-02 11:12
上一篇:
java桥接模式的优缺点是什么
下一篇:
MySQL中如何转换时区
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多










































