Javaで文字列を結合するときは一般的にはStringBuilderを使うけど、個人的には結合後の文字列がより直感的になるString.format() が好き。ただ、ソースを見ると明らかにString.format()は遅そうなのでベンチを取ってみた。
1万回ループを実行した場合の結果は
- StringBuilder: 76 ms
- String.format: 615 ms
となってStringBuilderの方が圧倒的に速い。個人的にはLL慣れしているのもあってString.format()の方が圧倒的に見やすくて好きなんだけど、スピードが要求されるときはやっぱりStringBuilder使わないと駄目だと思った次第。
ちなみに測定環境は下記。
- CPU: Intel Core i5 2.3Ghz Macbook Pro
- OS: Mac OSX SnowLeopard
- Java: java version "1.6.0_26", Java(TM) SE Runtime Environment (build 1.6.0_26-b03-384-10M3425), Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02-384, mixed mode)