首页 > 学院 > 开发设计 > 正文

几种拼接字符串的效率问题 .

2019-11-17 02:30:33
字体:
来源:转载
供稿:网友
几种拼接字符串的效率问题 .
  1. publicclasstest{
  2. /**
  3. *@paramargs
  4. */
  5. publicstaticvoidmain(String[]args){
  6. //TODOAuto-generatedmethodstub
  7. longn=30000;
  8. System.out.PRintln("Start..."+n);
  9. longstart1=System.currentTimeMillis();
  10. Strings1=newString("hello");
  11. for(longi=0;i<n;i++)
  12. {
  13. s1+="拼接字符串的时间";
  14. }
  15. longend1=System.currentTimeMillis();
  16. longtime1=end1-start1;
  17. System.out.println("用String+=拼接字符串的时间"+time1);
  18. longstart2=System.currentTimeMillis();
  19. Strings2=newString("hello");
  20. for(longi=0;i<n;i++)
  21. {
  22. s2=s2+"拼接字符串的时间";
  23. }
  24. longend2=System.currentTimeMillis();
  25. longtime2=end2-start2;
  26. System.out.println("用String=String+拼接字符串的时间"+time2);
  27. longstart3=System.currentTimeMillis();
  28. Strings3=newString("hello");
  29. for(longi=0;i<n;i++)
  30. {
  31. s3=s3.concat("拼接字符串的时间");
  32. }
  33. longend3=System.currentTimeMillis();
  34. longtime3=end3-start3;
  35. System.out.println("用String.concat拼接字符串的时间"+time3);
  36. longstart4=System.currentTimeMillis();
  37. StringBuffers4=newStringBuffer("hello");
  38. for(longi=0;i<n;i++)
  39. {
  40. s4.append("拼接字符串的时间");
  41. }
  42. longend4=System.currentTimeMillis();
  43. longtime4=end4-start4;
  44. System.out.println("用StringBuffer.append拼接字符串的时间"+time4);
  45. longstart5=System.currentTimeMillis();
  46. StringBuilders5=newStringBuilder("hello");
  47. for(longi=0;i<n;i++)
  48. {
  49. s5.append("拼接字符串的时间");
  50. }
  51. longend5=System.currentTimeMillis();
  52. longtime5=end5-start5;
  53. System.out.println("用StringBuilder.append拼接字符串的时间"+time5);
  54. System.out.println("End...");
  55. }
  56. }

贴出一组检测数据如下:

[java]view plaincopy在CODE上查看代码片派生到我的代码片
  1. 用String+=拼接字符串的时间27468
  2. 用String=String+拼接字符串的时间25813
  3. 用String.concat拼接字符串的时间12265
  4. 用StringBuffer.append拼接字符串的时间14
  5. 用StringBuilder.append拼接字符串的时间8

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表