分享

StringBuffer内容清空效率比较

 instl 2015-09-28

在开发程序的时候,经常使用StringBuffer来进行字符串的拼接。如果在循环中来反复的做字符串拼接时,会清空Stringbuffer中的内容,然后再拼接新的字符串信息。

例如:

StringBuffer sb = new StringBuffer("");

for (UserInfo ui : userInfoList) {

   sb = new StringBuffer("");

   sb.append("姓名:");

    sb.append(ui.getName());

   sb.append(" ");

   sb.append("年龄:");

    sb.append(ui.getAge());

   System.out.println(sb.toString());

}

在循环中使用sb = new StringBuffer("");来清空sb中的信息。

StringBuffer提供了以下连个方法:

1、delete(int start, int end)
          移除此序列的子字符串中的字符

2、setLength(int newLength)
          设置字符序列的长度。

测试程序:

   private static void testStringBufferclear() {
      StringBuffer sbf = new StringBuffer("wwwwww");
      StringBuffer sbi = new StringBuffer("wwwwww");
       long s1 = System.currentTimeMillis();
      for (int i = 0; i < 500000; i++) {
       sbi.setLength(0);
      }
      long s11 = System.currentTimeMillis();
      System.out.println("StringBuffer-setLength:" + (s11 - s1));
  
      s1 = System.currentTimeMillis();
      for (int i = 0; i < 500000; i++) {
       sbf.delete(0, sbf.length());
      }
      s11 = System.currentTimeMillis();
      System.out.println("StringBuffer--delete:" + (s11 - s1));
      s1 = System.currentTimeMillis();
      for (int i = 0; i < 500000; i++) {
       sbf = new StringBuffer("");
      }
      s11 = System.currentTimeMillis();
      System.out.println("StringBuffer--new StringBuffer:" + (s11 - s1));
      }
结果:

StringBuffer-setLength:63
StringBuffer--delete:109
StringBuffer--new StringBuffer:78

结论:

   要通过使用sbi.setLength(0);来清空StringBuffer对象中的内容效率最高。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多