以下は、API メソッドを呼び出して文字列を逆にするための 2 つの方法です。正当な理由を付けて、どちらのアプローチが優れているか教えてください
public String functionOne(String str){
char arr[] = str.toCharArray();
int limit = arr.length/2;
for (int i = arr.length-1, j = 0; j < limit; i--, j++) {
char c = arr[i];
arr[i] = arr[j];
arr[j] = c;
}
return new String(arr);
}
public String functionTwo(String str) {
StringBuilder strBuilder = new StringBuilder();
char[] strChars = str.toCharArray();
for (int i = strChars.length - 1; i >= 0; i--) {
strBuilder.append(strChars[i]);
}
return strBuilder.toString();
}
実際、長さ 100000 の文字列でコードを実行すると、2 番目のアプローチは最初のアプローチの 2 倍の時間がかかりました。System.currentTimeMillis() を使用することで、最初のアプローチで 1、2 番目のアプローチで 2 の実行差が見つかりました。