首页 > 代码库 > Java中StringBuilder的清空方法比较
Java中StringBuilder的清空方法比较
摘自:http://blog.chinaunix.net/uid-20745012-id-271466.html
StringBuilder 没有提供clear或empty方法。
清空有3种方法:
1)新生成一个,旧的由系统自动回收
2)使用delete
3)使用setLength
将三种方法循环1000万次,代码:
/** * @作者 whs * @创建日期 2015年1月30日 * @版本 V 1.0 */package strdemo;public class StrBuilder { static String a; static long time; public static void main(String[] args) { StringBuilder sb = new StringBuilder(); StringBuilder sb2=new StringBuilder(); time = System.currentTimeMillis(); for(int i=0;i<10000000;i++){ sb.delete(0, sb.length()); sb.append("someThi1ng"); sb.append("someThi2ng"); sb.append("someThi3ng"); sb.append("someThi4ng"); sb.append("someThi5ng"); sb.append("someThi6ng"); a = sb.toString(); } System.out.println("Way1="+(System.currentTimeMillis()-time)); time = System.currentTimeMillis(); for(int i=0;i < 10000000;i++){ sb2.setLength(0); sb2.append("someThin1g"); sb2.append("someThin2g"); sb2.append("someThin3g"); sb2.append("someThin4g"); sb2.append("someThin5g"); sb2.append("someThin6g"); a = sb2.toString(); } System.out.println("Way2="+(System.currentTimeMillis()-time)); time=System.currentTimeMillis(); for(int i=0;i < 10000000;i++){ StringBuilder sb3=new StringBuilder(); sb3.append("someThing1"); sb3.append("someThing2"); sb3.append("someThing3"); sb3.append("someThing4"); sb3.append("someThing5"); sb3.append("someThing6"); a=sb3.toString(); } System.out.println("Way3="+(System.currentTimeMillis()-time)); }}
注意append的字符串要都不相同,否则会因为java 的String pool对结果造成影响(即Way1好于Way2)
结果:
Way1=1672
Way2=1632
Way3=2532
可以将各方法多重复几次,点到顺序,等 总体来看:Way2好于Way1好于Way3
Java中StringBuilder的清空方法比较
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。