大家都知道JAVA中 int 类型要转化成 String 类型,可以有三种方式,分别是:
* (1) String.valueOf(i)
* (2) Integer.toString(i)
* (3) i+""
因为前两天,写一个程序时,要用到 int 转 String ,并且数据量很大,因此想看看这三种方式的效率怎样,写了一下简单的测试程序,在此记录一下。
- 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]);
- }
- Long t4 = System.currentTimeMillis();
- for(int i=0;i<1000000;i++){
- strArr3[i] = intArr[i]+"";
- }
- Long t5 = System.currentTimeMillis();
- System.out.println("t1 = "+t1);
- System.out.println("t2 = "+t2);
- System.out.println("t3 = "+t3);
- System.out.println("t4 = "+t4);
- System.out.println("t5 = "+t5);
- System.out.println("赋值:"+(t2-t1));
- System.out.println("String.valueOf(i):"+(t3-t2));
- System.out.println("Integer.toString(i):"+(t4-t3));
- System.out.println("i+"":"+(t5-t4));
- }
- }
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]); } g t System.currentTimeMillis(); f i=0;i<1000000;i++){
在JDK1.5环境下测试多次:
发现:
赋值:0
String.valueOf(i):891
Integer.toString(i):468
i+"":844
String.valueOf(i)与i+""的时间差别不大。
而Integer.toString(i)时间只有它们的一半左右,即此方法效率比较高。
Comments | NOTHING