首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

JAVA中int转String部类效率比较

2012-08-28 
JAVA中int转String类型效率比较大家都知道JAVA中 int 类型要转化成 String 类型,可以有三种方式,分别是:*

JAVA中int转String类型效率比较

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

Integer.parseInt?

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

Java代码?JAVA中int转String部类效率比较
  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)时间只有它们的一半左右,即此方法效率比较高。

热点排行