ホームページ  >  記事  >  Java  >  String に Append メソッドがある場合に StringBuilder を使用する理由

String に Append メソッドがある場合に StringBuilder を使用する理由

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-23 21:55:13273ブラウズ

Why Use StringBuilder When String Has Append Methods?

String の追加機能にもかかわらず StringBuilder を使用する理由?

Java の String クラスはコンテンツを追加するためのメソッドを提供しますが、不変です。つまり、内部を変更できません。州。その結果、追加操作ごとに新しい String オブジェクトが作成され、追加を繰り返すための非効率なプロセスになります。

Enter StringBuilder

StringBuilder は、変更可能であることでこの制限に対処しています。その append メソッドは基礎となる文字配列を変更するため、追加のたびに新しいオブジェクトを生成する必要がなくなります。この効率は、ループや複雑な文字列操作で特に役立ちます。

比較:

次の例を考えてみましょう:

String str = "";
for (int i = 0; i < 500; i++) {
    str += i;
}

このコードでは 500 が作成されます。新しい String オブジェクトにより、重大なオーバーヘッドが発生します。対照的に、StringBuilder を使用すると、

StringBuilder sb = new StringBuilder();
for (int i = 0; i < 500; i++) {
    sb.append(i);
}

新しい String オブジェクトを作成せずに同じ String オブジェクトが追加されます。

自動変換

コンパイラは連結を自動的に変換します。式 (例: "String d = a b c") を StringBuilder ベースに変換操作:

String d = new StringBuilder(a).append(b).append(c).toString();

その他のオプション:

StringBuilder に加えて、Java は同期メソッドを持つ StringBuffer を提供します。これは主に、スレッドセーフなアクセスが必要なマルチスレッドのシナリオで役立ちます。

以上がString に Append メソッドがある場合に StringBuilder を使用する理由の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。