`
xinklabi
  • 浏览: 1590888 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
文章分类
社区版块
存档分类
最新评论

StringBuilder清空的几种方法比较

    博客分类:
  • Java
 
阅读更多

转自:http://blog.chinaunix.net/uid-20745012-id-271466.html

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

将三种方法循环1000万次,代码:

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

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

结果:

  1. Way2=9438
  2. Way1=6281
  3. Way3=6469


可以将各方法多重复几次,点到顺序,等
总体来看:方法2好于方法3好于方法1

分享到:
评论

相关推荐

    StringBuffer、StringBuilder、String

    在Java中,有几种不同的方式可以用来创建和修改字符串,其中最常用的是`String`、`StringBuffer`和`StringBuilder`。本文将详细介绍这三种类型的字符串及其区别,特别是`StringBuffer`和`StringBuilder`之间的差异。...

    C#全能速查宝典

    1.5.4 Clear方法——清空内容 98 1.5.5 Contains方法——确定是否包含某项 99 1.5.6 ContainsKey方法——确定哈希表是否包含特定键 100 1.5.7 ContainsText方法——确定剪贴板中是否存在数据 101 1.5.8 Contains...

    androidXML解析实例代码

    在这个子类中,我们需要重写以下几个关键方法: 1. `startDocument()`: 当解析器开始解析文档时调用。 2. `endDocument()`: 解析文档结束时调用。 3. `startElement(String uri, String localName, String qName, ...

    Java基础复习笔记05数据结构-栈

    栈主要有以下几种操作: 1. **压栈(Push)**:将一个元素添加到栈顶。 2. **弹栈(Pop)**:从栈顶移除并返回一个元素。 3. **查看栈顶元素(Peek)**:返回栈顶元素但不移除。 4. **检查栈是否为空(IsEmpty)**...

    VB RichTextBox 每行文字设置不同颜色

    首先,了解`RichTextBox`的基本属性和方法是必要的。`Text`属性用于获取或设置控件中的文本内容,`SelectionStart`用于设定光标位置,`SelectionLength`用于设定选中文本的长度,而`SelectionColor`则可以用来改变...

    ASP.NET c# 封装常用到的js通用函数

    函数接受当前页面对象、提示信息和目标URL作为参数,利用StringBuilder构造一个包含警告和重定向命令的JavaScript代码片段,并通过`RegisterStartupScript`方法将其注册到页面上。这种方式不仅提高了用户体验,还...

    java treeview 多选和获取值

    // 清空StringBuilder TreeNode node = treeView1.TopNode; // 获取根节点 while (node.PrevNode != null) node = node.PrevNode; TraversNodes(node); // 遍历根节点 MessageBox.Show(nodesTag.ToString());...

    数据库和窗体

    根据给定的文件信息,我们可以总结出以下几个关键的数据库操作知识点: ### 1. 使用INSERT插入数据 #### 插入单行数据 `INSERT INTO` 语句用于向数据库表中添加新的数据行。基本语法如下: ```sql INSERT INTO ...

    java实现记事本功能

    StringBuilder content = new StringBuilder(); String line; while ((line = reader.readLine()) != null) { content.append(line).append("\n"); } textArea.setText(content.toString()); } catch ...

    ASP.NET程序中常用的三十三种代码.txt

    ASP.NET程序中常用的三十三种代码 1. 打开新的窗口并传送参数:  传送参数: response.write("&lt;script&gt;window.open(’*.aspx?id="+this.DropDownList1.SelectIndex+"&id1="+...+"’)&lt;/script&gt;")  接收参数: ...

Global site tag (gtag.js) - Google Analytics