close
之前看到某個系統把陣列轉成字串的功能
臨時想到了關於功能的效能問題
所以就稍微記了一下
他大概的程式碼如下
public String arrayToString(String[] input){
StringBuffer result = new StringBuffer();
if(input!=null){
boolean isFirstElement = true;
for(int i = 0; i<input.length; i++){
if(isFirstElement){
result.append(input[i]);
} else {
result.append(", ");
result.append(input[i]);
}
}
}
return result.toString();
}
這段大概的意思是將一個陣列轉成字串
第一個字以後都要用", "分開,所以需要用isFirstElement來判斷是不是第一筆資料
可是我覺得這個寫法除了多了一個暫存值以外
每個迴圈都要判斷一次是不是第一個感覺效能不是很好
於是我就思考如何把那個if去掉
後來想到的方法如下
public String arrayToString(String[] input){
StringBuffer result = new StringBuffer();
if(input!=null && input.length>0){
result.append(input[0]);
for(int i = 1; i<input.length; i++){
result.append(", ");
result.append(input[i]);
}
}
return result.toString();
}
把for迴圈的i=0, i<input.length(這句相當於input.length>0)拿掉
將這判斷式移到input!=null的後面
這樣除了把isFirstElement移掉以外
也不會多做if判斷,執行時間跟記憶體空間都能節省到
可讀性的問題也可以用,提供給大家參考!
全站熱搜