* (1) String.valueOf(i)
* (2) Integer.toString(i)
* (3) i+""
因为前两天,写一个程序时,要用到 int 转 String ,并且数据量很大,因此想看看这三种方式的效率怎样,写了一下简单的测试程序,在此记录一下。
- public
classTestIntToStr { -
-
public static voidmain(String[] args) { -
int[] newintArr = int[1000000]; -
newString[] strArr1 = 1000000];//为了公平分别定义三个数组String[ -
-
newString[] strArr2 = 1000000];String[ -
newString[] strArr3 = 1000000];String[ -
//赋值 -
Long t1 = System.currentTimeMillis(); -
for(int 0;i<1000000;i++){i= -
1;intArr[i]=i+ -
} -
Long t2 = System.currentTimeMillis(); -
for(int 0;i<1000000;i++){i= -
strArr1[i] = String.valueOf(intArr[i]); -
} -
Long t3 = System.currentTimeMillis(); -
for(int 0;i<1000000;i++){i= -
strArr2[i] = Integer.toString(intArr[i]); -
} -
Long t4 = System.currentTimeMillis(); -
for(int 0;i<1000000;i++){i= -
"";strArr3[i] = intArr[i]+ -
} -
Long t5 = System.currentTimeMillis(); -
"t1System.out.println( +t1);= " -
"t2System.out.println( +t2);= " -
"t3System.out.println( +t3);= " -
"t4System.out.println( +t4);= " -
"t5System.out.println( +t5);= " -
"赋值:"+(t2-t1));System.out.println( -
"String.valueOf(i):"+(t3-t2));System.out.println( -
"Integer.toString(i):"+(t4-t3));System.out.println( -
"i+\"\":"+(t5-t4));System.out.println( -
-
} -
- }
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)时间只有它们的一半左右,即此方法效率比较高。