• JAVA中int转String类型效率比较


    大家都知道JAVA中 int 类型要转化成 String 类型,可以有三种方式,分别是:
    * (1) String.valueOf(i)
    * (2) Integer.toString(i)
    * (3) i+""


    因为前两天,写一个程序时,要用到 int 转 String ,并且数据量很大,因此想看看这三种方式的效率怎样,写了一下简单的测试程序,在此记录一下。

    Java代码 复制代码
    1. public class TestIntToStr {   
    2.     
    3.  public static void main(String[] args) {   
    4.   int[] intArr new int[1000000];   
    5.   String[] strArr1 new String[1000000];//为了公平分别定义三个数组   
    6.   
    7.   String[] strArr2 new String[1000000];   
    8.   String[] strArr3 new String[1000000];   
    9.   //赋值   
    10.   Long t1 System.currentTimeMillis();   
    11.   for(int i=0;i<1000000;i++){   
    12.    intArr[i]=i+1;   
    13.   }   
    14.   Long t2 System.currentTimeMillis();   
    15.   for(int i=0;i<1000000;i++){   
    16.     strArr1[i] String.valueOf(intArr[i]);     
    17.   }   
    18.   Long t3 System.currentTimeMillis();   
    19.   for(int i=0;i<1000000;i++){   
    20.    strArr2[i] Integer.toString(intArr[i]);   
    21.   }   
    22.   Long t4 System.currentTimeMillis();   
    23.   for(int i=0;i<1000000;i++){   
    24.    strArr3[i] intArr[i]+"";   
    25.   }   
    26.   Long t5 System.currentTimeMillis();   
    27.   System.out.println("t1 "+t1);   
    28.   System.out.println("t2 "+t2);   
    29.   System.out.println("t3 "+t3);   
    30.   System.out.println("t4 "+t4);   
    31.   System.out.println("t5 "+t5);   
    32.   System.out.println("赋值:"+(t2-t1));   
    33.   System.out.println("String.valueOf(i):"+(t3-t2));   
    34.   System.out.println("Integer.toString(i):"+(t4-t3));   
    35.   System.out.println("i+\"\":"+(t5-t4));   
    36.   
    37.  }   
    38.   
    39.  
    public class TestIntToStr { public static void main(String[] args) { int[] intArr = new int[1000000]; String[] strArr1 = new String[1000000];//为了公平分别定义三个数组 String[] strArr2 = new String[1000000]; String[] strArr3 = new String[1000000]; //赋值 Long t1 = System.currentTimeMillis(); for(int i=0;i<1000000;i++){ intArr[i]=i+1; } Long t2 = System.currentTimeMillis(); for(int i=0;i<1000000;i++){ strArr1[i] = String.valueOf(intArr[i]); } Long t3 = System.currentTimeMillis(); for(int i=0;i<1000000;i++){ strArr2[i] = Integer.toString(intArr[i]); }  ong t4 = System.currentTimeMillis();
                                                                                                                                                   


    在JDK1.5环境下测试多次:

    发现:

    赋值:0
    String.valueOf(i):891
    Integer.toString(i):468
    i+"":844



    String.valueOf(i)与i+""的时间差别不大。



    而Integer.toString(i)时间只有它们的一半左右,即此方法效率比较高。
  • 相关阅读:
    C#解析PDF
    Ora-03113Ora-03114与Oracle In 拼接字符串的问题
    [Linux] nohup/setsid/& 让进程在后台可靠运行
    [Python] json 报错'xxx is not JSON serializable'的处理方法
    [Linux] 虚拟环境的配置和使用 virtualenv
    [Python] 跳过前几行快速读取文件内容:islice
    对pandas的dataframe绘图并保存
    matplotlib 数据可视化
    awk结合正则匹配
    Pandas库常用函数和操作
  • 原文地址:https://www.cnblogs.com/superchao8/p/2018961.html
Copyright © 2020-2023  润新知