はじめに
以前の現場で上長からString型の文字連結はStringBuilderのappendでやった方が速いということを教わってからずっと覚えていたのですが、今勉強している参考書でもそのことが触れられていたので実際どれくらい速いのか実践してみたいと思いました。
stringBuilderTest.java
public class StringBuilderTest {
public static void main(String[] args) {
String name = "";
long start = System.currentTimeMillis();
for(int i=1; i<=1000; i++){
name += "tanaka, ";
};
long end = System.currentTimeMillis();
System.out.println("+連結 : "+(end - start) + "ms");
StringBuilder sb = new StringBuilder();
long start2 = System.currentTimeMillis();
for(int i=1; i<=400000; i++){
sb.append("tanaka, ");
};
String name2 = sb.toString();
long end2 = System.currentTimeMillis();
System.out.println("StringBuilder.append連結 : "+(end2 - start2) + "ms");
}
}
結果.java
+連結 : 24ms
StringBuilder.append連結 : 27ms
for文の回している回数をみてもらえるとわかりますが + で連結したのは1000回実行するのに24ms
掛かってappend連結は27ms
で40万回実行してますね。
数回しか実行しないならともかく、前の現場も万単位でfor文を回していたので覚えておいて損はないですね。