String tmpParam = "";
for(String key : map.keySet()){
tmpParam += ("&" + key + "=" + URLEncoder.encode(map.get(key)));
}
tmpParam = tmpParam.substring(1);//去掉最前端的&
String strUrl = "http://" + host + ":8080/smsControl/"
+ action
+ ".action?"
+ tmpParam;
这是我写的代码,目的是拼一个URL出来,参数放在map里了高手们都说说这几行代码的优化算法吧,大家讨论一下
相当的影响性能。。如果map中数据太多,可以考虑entrySet()
public class Test02 {
public static void main(String[] args) {
final int count = 100000;
long time01 = System.currentTimeMillis();
String s = "";
for (int i = 0; i < count; i++) {
s += 'a';
}
long time02 = System.currentTimeMillis();
System.out.println("String:" + (time02 - time01) + "ms");
long time03 = System.currentTimeMillis();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < count; i++) {
sb.append('a');
}
long time04 = System.currentTimeMillis();
System.out.println("StringBuilder:" + (time04 - time03) + "ms");
}
}
执行结果:
String:5063ms
StringBuilder:0ms
你说错了...简单的拼接是优化过的...
比如String a = "a" + "B" + "c";但是循环中的优化,呵呵...可以反编译一下..
是一次循环创建一个StringBuffer.....
不好意思,是我错了。没仔细看是在循环中的...确实需要StringBuffer优化~~