StringBuffer内容清空效率比较
2014-01-07 16:10
363 查看
在开发程序的时候,经常使用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对象中的内容效率最高。
例如:
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对象中的内容效率最高。
相关文章推荐
- StringBuffer内容清空效率比较
- StringBuffer内容清空效率比较
- StringBuffer内容清空效率比较
- StringBuffer内容清空效率比较
- StringBuffer内容清空效率比较
- StringBuffer内容清空效率比较
- StringBuffer内容清空效率比较
- StringBuffer内容清空效率比较
- StringBuffer内容清空效率比较
- StringBuffer清空 效率比较(欢迎大家一起交流)
- 在JAVA中怎么清空StringBuffer变量内容
- String和StringBuffer效率比较
- String,StringBuffer,StringBuilder效率与内存占用比较
- String与StringBuffer效率的比较
- 七种java字符串反转比较得出String与StringBuffer的效率
- [Java]String和StringBuffer连接字串的效率比较
- 通过ifstream将文件内容一次性读入容器的效率比较
- StringBuffer清空的效率
- 再传一点今天的开发日志上来,主要是String和StringBuffer效率问题比较
- 在JAVA中怎么清空StringBuffer变量内容