ひしだまの変更履歴

ひしだまHPの更新履歴。
主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲームや音楽です。

効率の良い文字列の結合方法

2007-07-01 07:26:49 | PG(Java)

文字列の結合の実験結果をメモ。

Stringクラスに、文字列を結合するconcat()というメソッドがあった。
Stringは「+演算子」で結合できるが実体はStringBuilder#append()なので、なぜそんなものがあるのだろうと思い、どっちが効率いいのか実行時間を測ってみた。

最も単純な例ではString#concat()が速かった。
が、普通に使うケースではStringBuilder#append()の方が速い。
「+演算子」は実質StringBuilderだけれども、実は単純にStringBuilderを使うよりも 細かい部分で慎重になっている面があることが分かった。
うまく最適化してくれればその辺りは解決できるはずなんだけど、そういった最適化はしてくれないみたいだし。

内部実装を真似て自分で実装してみても、場合によってはStringBuilderに及ばない。
ライブラリー化しようものなら、きっとStringBuilderに敵わないな。

ついでに、「+演算子」がどのようにStringBuilderに展開されるのか実験してみた。
単一行で使う場合は素直に「+演算子」を使い、
複数行やループで使う場合はStringBuilderを使うのが絶対良さそうだ。


コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 可変引数 | トップ | JNDIはプロパティー »
最新の画像もっと見る

コメントを投稿

PG(Java)」カテゴリの最新記事