Java中StringBuilder清空数据方法比较

(转载)http://blog.csdn.net/stimgo/article/details/53770376

StringBuilder 没有提供clear或empty方法。
清空有3种方法:
1)新生成一个,旧的由系统自动回收
2)使用delete
3)使用setLength
将三种方法循环1000万次,代码:

1.public class sbbm {
2.
3.    static String a;
4.    static long time ;
5.    public static void main( String[] args ) throws Exception {
6.       
7.         StringBuilder sb = new StringBuilder();
8.         StringBuilder sb3 = new StringBuilder();
9.        
10.         time = System.currentTimeMillis();
11.          for( int i = 0; i < 10000000; i++ ) {
12.              StringBuilder sb2 = new StringBuilder();
13.              sb2.append( "someStr6ing" );
14.              sb2.append( "someS5tring2" );
15.              sb2.append( "some3Strin4g" );
16.              sb2.append( "so3meStr5ing" );
17.              sb2.append( "so2meSt7ring" );
18.              a = sb2.toString();
19.          }
20.          System.out.println( "Way2="+(System.currentTimeMillis()-time) );
21.          
22.
23.        time = System.currentTimeMillis();
24.        for( int i = 0; i < 10000000; i++ ) {
25.            sb.delete( 0, sb.length() );
26.            sb.append( "someString" );
27.            sb.append( "someString2" );
28.            sb.append( "someStrin4g" );
29.            sb.append( "someStr5ing" );
30.            sb.append( "someSt7ring" );
31.            a = sb.toString();
32.        }
33.        System.out.println( "Way1="+(System.currentTimeMillis()-time) );
34.
35.        time = System.currentTimeMillis();
36.        for( int i = 0; i < 10000000; i++ ) {
37.
38.            sb3.setLength( 0 );
39.            sb3.append( "someStr55ing" );
40.            sb3.append( "some44String2" );
41.            sb3.append( "som55eStrin4g" );
42.            sb3.append( "some66Str5ing" );
43.            sb3.append( "so33meSt7ring" );
44.            a= sb3.toString() ;
45.        }
46.        System.out.println( "Way3="+(System.currentTimeMillis()-time) );
47. 
48.     
49.    }
50.}

注意append的字符串要都不相同,否则会因为Java 的String  pool对结果造成影响(即3好于2)
结果:

1.Way2=9438
2.Way1=6281
3.Way3=6469
可以将各方法多重复几次,颠倒顺序,等
总体来看:方法2好于方法3好于方法1


  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值