您的位置:首页 > Web前端

StringBuffer内容清空效率比较

2014-06-19 09:58 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对象中的内容效率最高。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: