• java switch 优化


    关键字 switch 语句用于多条件判断,switch 语句的功能类似于 if-else 语句,两者的性能差不多。但是 switch 语句有性能提升空间。清单 16 所示代码演示了 Switch 与 if-else 之间的对比。

    Switch 示例
    public class switchCompareIf {
    
    public static int switchTest(int value){
    int i = value%10+1;
    switch(i){
    case 1:return 10;
    case 2:return 11;
    case 3:return 12;
    case 4:return 13;
    case 5:return 14;
    case 6:return 15;
    case 7:return 16;
    case 8:return 17;
    case 9:return 18;
    default:return -1;
    }
    }
    
    public static int arrayTest(int[] value,int key){
    int i = key%10+1;
    if(i>9 || i<1){
    return -1;
    }else{
    return value[i];
    }
    }
    
     public static void main(String[] args){
     int chk = 0;
     long start=System.currentTimeMillis();
     for(int i=0;i<10000000;i++){
     chk = switchTest(i);
     }
     System.out.println(System.currentTimeMillis()-start);
     chk = 0;
     start=System.currentTimeMillis();
     int[] value=new int[]{0,10,11,12,13,14,15,16,17,18};
     for(int i=0;i<10000000;i++){
     chk = arrayTest(value,i);
     }
     System.out.println(System.currentTimeMillis()-start);
     }
    }

    运行输出如清单 17 所示。

     运行结果
    172
    93

    使用一个连续的数组代替 switch 语句,由于对数据的随机访问非常快,至少好于 switch 的分支判断,从上面例子可以看到比较的效率差距近乎 1 倍,switch 方法耗时 172ms,if-else 方法耗时 93ms。

  • 相关阅读:
    mapreduce 的过程
    bootstrap当中,实现一些常用的元素居中
    如何理解人工智能、机器学习和深度学习三者的关系
    MapReduce的局限性
    MapReduce的计算资源划分
    Java中的堆和栈的区别
    java面试01-网络知识
    01Java经典问题
    06数据库复习03
    05数据库复习02
  • 原文地址:https://www.cnblogs.com/zhangdashen/p/6291029.html
Copyright © 2020-2023  润新知