一、用串中搜索变量替换大量变量判断
以下修改方式将运算减少至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直接接串的性能对比资料可网上搜索,在此不做详述。