您的位置:首页 > 其它

当心字符串连接符影响性能

2015-05-14 11:21 197 查看
Using the string concatenation operator repeatedly to concatenate n strings requires time quadratic in n.

重复地使用连接符n次需要n的平方级的时间

To achieve acceptable performance, use a StringBuilder in place of a String

例如:

public class StringConcatenation {

private static final List intList;

static{

intList = new ArrayList();

for( int i=0; i<10000; i++){

intList. add(i );

}

}

public static long plusplus(){

long current = System. currentTimeMillis();

String sum = “”;

for(Integer i: intList){

sum+= i;

}

//System.out.println(sum);

return (System. currentTimeMillis()- current);

}

public static long stringbuilder(){
long current = System. currentTimeMillis();
StringBuilder sum = new StringBuilder();
for(Integer i: intList){
sum.append( i);
}
//System.out.println(sum);
return (System. currentTimeMillis()- current);
}
public static long stringbuffer(){
long current = System. currentTimeMillis();
StringBuffer sum = new StringBuffer();
for(Integer i: intList){
sum.append( i);
}
//System.out.println(sum);
return (System. currentTimeMillis()- current);
}

public static void main(String[] args){
System. out.println( plusplus());
System. out.println( stringbuilder());
System. out.println( stringbuffer());
} }


输出结果:

287

2

3
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: