当前位置: 代码迷 >> J2SE >> 简单的几行代码,大家说说优化思路,该怎么处理
  详细解决方案

简单的几行代码,大家说说优化思路,该怎么处理

热度:50   发布时间:2016-04-24 01:05:19.0
简单的几行代码,大家说说优化思路
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");    }}
------解决方案--------------------
探讨

JDK1.5以上已经优化String连加操作为StringBuffer,此处不需要优化。
  相关解决方案