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
结论:可以明显看出,重新创建对象的方法是最慢的,删除字符串和设置长度的方法差别不大.
StringBuilder的三种删除方法比较的更多相关文章
- 详解数据库三种删除方法: delete drop truncate
Delete Delete :删除数据表中的行(可以删除某一行,也可以在不删除数据表的情况下删除所有行). 删除某一行:Delete from 数据表名称 where 列名称=值: 删除所有行:Del ...
- 006 列表的三种删除方法 remove,pop,del
先定义一个列表: number=[,'changhao','常浩',5.2] . remove(): number.remove('changhao')---括号内是要删除的单一值 . pop(): ...
- 【java】StringBuilder的三种清除方法对比
参考链接:https://blog.csdn.net/roserose0002/article/details/6972391
- 清空StringBuilder的三种方法及效率
清空StringBuilder的三种方法及效率 大家知道对于字符串频繁拼接是使用stringbuilder.Append方法比使用string+=方法效率高很多,但有时需要清空stringbuilde ...
- C#使用DataSet Datatable更新数据库的三种实现方法
本文以实例形式讲述了使用DataSet Datatable更新数据库的三种实现方法,包括CommandBuilder 方法.DataAdapter 更新数据源以及使用sql语句更新.分享给大家供大家参 ...
- Liunx 环境下vsftpd的三种实现方法(超详细参数)
以下文章介绍Liunx 环境下vsftpd的三种实现方法 ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.0.3.tar.gz,目前已经到2.0.3版本.假 ...
- K8S(02)管理核心资源的三种基本方法
系列文章说明 本系列文章,可以基本算是 老男孩2019年王硕的K8S周末班课程 笔记,根据视频来看本笔记最好,否则有些地方会看不明白 需要视频可以联系我 管理k8s核心资源的三种基本方法: 目录 系列 ...
- javase-常用三种遍历方法
javase-常用三种遍历方法 import java.util.ArrayList; import java.util.Iterator; import java.util.List; public ...
- JS面向对象(3) -- Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法
相关链接: JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式 JS面向对象(2) -- this的使用,对 ...
随机推荐
- svn安装使用
SVN安装使用 获取项目 1.首先新建文件夹.如:测试项目. 2.接着鼠标右键选择:SVN Checkout/SVN 检出 3.在出行的对话框中输入仓库地址.如:svn://198.021.262/2 ...
- Linux基础命令---切换用户su
su 临时切换身份到另外一个用户,使用su切换用户之后,不会改变当前的工作目录,但是会改变一些环境变量. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.openSUS ...
- vue-i18n国际化插件
vue-i18n国际化插件 安装,到项目目录下执行:npm install vue-i18n 配置在src\main.js里面引入vue-i18n // 语言包插件import VueI18n fro ...
- Git在Eclipse中的使用
一.把远程仓库的项目clone到eclipse里面: 最新版的Eclipse上已经集成了Git插件.所以在Eclipse中可以很方便的使用Git的功能. 在使用Git功能之前,需要先进行下简单的设置. ...
- [转载]谈谈document.ready和window.onload的区别
在Jquery里面,我们可以看到两种写法:$(function(){}) 和$(document).ready(function(){}) 这两个方法的效果都是一样的,都是在dom文档树加载完之后执行 ...
- vue 组件之间 的通信
组件之间通信: 同级组件之间通信:两个组件定义应用到同一个vue实例之下: <div id="webapp" class="box"> & ...
- MXNet官方文档中文版教程(3):神经网络图(Symbol)
https://blog.csdn.net/qq_36165459/article/details/78394259 文档英文原版参见Symbol - Neural network graphs an ...
- 9i时候的块
Header (Common and Variable) The header contains general block information, such as the block addres ...
- 桌面版Ubuntu系统固定IP设置和Network-manager设置
我自己的学校是绑定MAC和IP上网的.这种方法名义上说是为了安全,不过是个搞计算机的都知道随便修改一下MAC就可以使用别人的IP了. 不提蛋疼的事情了,先来说说网络的配置吧 我用的是Ubuntu14. ...
- Python-制作抖音图片
---------------------------------------------------------------------------------------------------- ...