以下修改方式將運算減少至2次。
【原始代碼】
if(!(kindCode.equals("050900")||kindCode.equals("050911")||kindCode.equals("050912")||kindCode.equals("050928")||kindCode.equals("050929")||kindCode.equals("050921")||kindCode.equals("050922")||kindCode.equals("050925")||kindCode.equals("050923")||kindCode.equals("050924")||kindCode.equals("050926")))
【優化參考方案】
if(("050900, 050911, 050912, 050928, 050929, 050921, 050922, 050925, 050923, 050924, 050926").indexOf(kindCode)==-1)
二、一種複雜度3n變n的拼分隔符優化算法、大量拼串應使用StringBuilder
【原始代碼】
rateCode = "";
for (int j = 0; j < ratecode1.length; j++) {
if (j == ratecode1.length - 1) {
rateCode = rateCode + ratecode1[j];
} else {
rateCode = rateCode + ratecode1[j] + ",";
}
}
【優化參考方案】
rateCode = "";
StringBuilder builder = new StringBuilder(128);
for (int j = 0; j < ratecode1.length; j++) {
builder.append(",").append(ratecode1[j]);
}
rateCode = builder.substring(1);
由於for循環中少一次判斷運算及(ratecode1.length - 1),因此整體複雜度降爲n;關於StringBuilder拼串與String直接接串的性能對比資料可網上搜索,在此不做詳述。