よくJavaでは文字列結合で+演算子より、StringBuilderを使ったほうがパフォーマンスがいいと言われるけれど、それはこういうケースだろう。
この場合はループの外でStringBuilderインスタンスを一度だけ生成して使ったほうが効率がいい。
しかしながら、定数文字列と変数から文字列を作り出す場合にも同じようにStringBuilderを使っているケースが見られる。
String s = ""; for (String e : stringList) { s += e; }ループ中で文字列を次々に連結させていく操作だ。
この場合はループの外でStringBuilderインスタンスを一度だけ生成して使ったほうが効率がいい。
StringBuilder sb = new StringBuilder(); for (String e : stringList) { sb.append(e); } String s = sb.toString();ちなみにJava8ではStringにjoinメソッドが追加されたので、そちらを使うのが便利。
しかしながら、定数文字列と変数から文字列を作り出す場合にも同じようにStringBuilderを使っているケースが見られる。
StringBuilder sb = new StringBuilder(); sb.append("Hello, "); sb.append(name); sb.append("!"); String s = sb.toString();この場合は+演算子で結合したほうが見た目はわかりやすい。
String s = "Hello, " + name + "!";しかし、パフォーマンス的にはStringBuilderでappendしたほうが速い...のだろうか?
0 件のコメント:
コメントを投稿