1. ホーム
  2. java

[解決済み] Java の toString() における StringBuilder と文字列連結の比較

2022-03-18 01:15:19

質問

2が与えられた toString() の実装を以下に示しますが、どちらが好ましいでしょうか。

public String toString(){
    return "{a:"+ a + ", b:" + b + ", c: " + c +"}";
}

または

public String toString(){
    StringBuilder sb = new StringBuilder(100);
    return sb.append("{a:").append(a)
          .append(", b:").append(b)
          .append(", c:").append(c)
          .append("}")
          .toString();
}

?

もっと重要なことは、3つのプロパティしかないことを考えると、違いはないかもしれませんが、どの時点で + を連結して StringBuilder ?

解決方法は?

バージョン1の方が短いので好ましいですし に変換されます。 - 性能に差はありません。

より重要なことは、3つのみであることを考えると プロパティに影響を与えないかもしれません。 の違いですが、どの時点で concatからbuilderに切り替えますか?

ループの中で連結している時点では、通常コンパイラが StringBuilder を単体で使用します。