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的使用,对 ...
随机推荐
- linux常用命令:cat 命令
cat命令的用途是连接文件或标准输入并打印.这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用. 1.命令格式: cat [选项] [文件] ...
- RocketMQ最佳实战
RocketMQ 客户端最佳实践 1. Producer最佳实践 发送消息注意事项 1). 一个应用尽可能用一个Topic,消息子类型用tags来标识,tags可以由应用自由设置. 2). 消息发送成 ...
- How to do if the GM MDI cant connect with the software
When you use GM MDI on your laptop , you may meet some troubles . Such as it cant communicate with t ...
- 大数据学习路线分享-Hbase shell的基本操作完整流程
HBase的命令行工具,最简单的接口,适合HBase管理使用,可以使用shell命令来查询HBase中数据的详细情况.安装完HBase之后,启动hadoop集群(利用hdfs存储),启动zookeep ...
- Jquery autocomplete.js输入框联想补全功能
Jquery autocomplete.js插件下载地址:http://files.cnblogs.com/files/jinzhiming/autocomplete.rar 有两种用法,一种是直接使 ...
- intelliJ IDEA之使用svn或git管理代码
intelliJ IDEA之使用svn管理代码 1.VCS—>import into Version Control—>Share Project(Subversion) 2.点击+ ...
- MySQL笔记(八)存储过程练习&补充
存储过程有什么优缺点?为什么要用存储过程?或者在什么情况下才用存储过程? 最直白的好处是存储过程比较快. 1.利用存储过程,给Employee表添加一条业务部门员工的信息. DROP PROCEDUR ...
- django 表单常用field
BooleanField字段:相当于单选框 CharField:接受字符串 参数:max_length最大长度,min_length最小长度 require字段是否是必须的,默认为required=T ...
- JDK常用命令(三)jmap
jmap jmap,Java Memory Map.主要用于打印指定Java进程(或核心文件.远程调试服务器)的共享对象内存映射或堆内存细节. jmap命令可以获得运行中的jvm的堆的快照,从而可以离 ...
- k8s环境搭建
mirantis 有个培训, 提供了安装脚本 git clone https://bitbucket.org/mirantis-training/kd100-scripts 网络采用的是calico ...