- Java code
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里了
高手们都说说这几行代码的优化算法吧,大家讨论一下
------解决方案--------------------
String tmpParam = ""; 必须改为StringBuilder....
相当的影响性能。。
如果map中数据太多,可以考虑entrySet()
- Java code
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"); }}
------解决方案--------------------