zoukankan      html  css  js  c++  java
  • StringBuilder的三种删除方法比较

    分别用一千万次循环来比较StringBuilder的三种删除方法所用时间

    未避免偶然性,再循环一百次来比较总时间

    --主类

    public class StringBuilderRemove {
      public long newProject;//重新创建对象循环一千万次所用时间
      public long delete;//删除字符串循环一千万次所用时间
      public long updateLength;//修改长度循环一千万次所用时间

      public void test() {

        //第一种,新创建一个对象
        long startTimeA = System.currentTimeMillis();
        StringBuilder sb = null;
        for (int i = 1; i <= 10000000; i++) {
          sb = new StringBuilder();
          sb.append("AAAAAAA");
          sb.append("BBBBBBB");
          sb.append("CCCCCCC");
          sb.append("DDDDDDD");
          sb.append("EEEEEEE");
          sb.append("FFFFFFF");
          sb.append("GGGGGGG");
          String a = sb.toString();
        }
        this.newProject = System.currentTimeMillis() - startTimeA;//new新对象所花时间

        //第二种,删除字符串
        long startTimeB = System.currentTimeMillis();

        for (int i = 1; i <= 10000000; i++) {
          sb.delete(0, sb.length());
          sb.append("AAAAAAA");
          sb.append("BBBBBBB");
          sb.append("CCCCCCC");
          sb.append("DDDDDDD");
          sb.append("EEEEEEE");
          sb.append("FFFFFFF");
          sb.append("GGGGGGG");
          String a = sb.toString();
        }
        this.delete = System.currentTimeMillis() - startTimeB;//删除字符串所花时间

        //第三种,设置长度
        long startTimeC = System.currentTimeMillis();
        for (int i = 1; i <= 10000000; i++) {
          sb.setLength(0);
          sb.append("AAAAAAA");
          sb.append("BBBBBBB");
          sb.append("CCCCCCC");
          sb.append("DDDDDDD");
          sb.append("EEEEEEE");
          sb.append("FFFFFFF");
          sb.append("GGGGGGG");
          String a = sb.toString();
        }
        this.updateLength = System.currentTimeMillis() - startTimeC;//修改字符串长度所花时间
    }

    --测试类

    public class Main {

      public static void main(String[] args) {
        StringBuilderRemove sbr = new StringBuilderRemove();
        long a = 0;
        long b = 0;
        long c = 0;
        for (int i = 0; i < 100; i++) {
        sbr.test();
        a += sbr.newProject;
        b += sbr.delete;
        c += sbr.updateLength;
        }
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
      }

    }

    运行结果:

    168046
    95123
    93593

    结论:可以明显看出,重新创建对象的方法是最慢的,删除字符串和设置长度的方法差别不大.

  • 相关阅读:
    Git库搭建好之后,当要提交一个新的文件,需要做的是3个步骤
    实习生面试经历
    Word2007中插入公式之后,公式上下有很大的空白
    参考文献规范格式
    Git学习笔记四--远程仓库
    Git学习笔记三--管理修改、撤销修改、删除文件
    Git学习笔记二--工作区和暂存区
    Git学习笔记一--创建版本库、添加文件、提交文件等
    Errors running builder 'DeploymentBuilder' on project '工程名'
    java中运算符与表达式
  • 原文地址:https://www.cnblogs.com/goujh/p/8309447.html
Copyright © 2011-2022 走看看