デザインが苦手なWeb便利屋

やったこと備忘録。Webサーバ、DB、JavascriptとかLinuxとか。

Java プログラム

文字列の連結 | Java StringとStringBuilder

投稿日:

文字の連結

JavaでStringを連結する場合の話です。備忘録。

私の素人頭で文字列の連結をすると、単純に+でつなぎます。

という感じです。

一般的にはこれで問題ありません。
速度も気にならないと思いますが、これが5万回とかになると話は別です。

+で連結する際、かなりリソースを消費します。

例えば、Aという文字を5万回追加します。

私の環境では、

処理にかかった時間:1108ms
文字列の長さ:50000

でした。

次にStringBuilder

+連結ではなく、StringBuilderのインスタンス作成し、StringBuilder#append()を使います。

結果は

処理にかかった時間:12ms
文字列の長さ:50000

比べるまでもないこの速さ!

ちなみに20万回

  • String+連結
    19145ms
  • StringBuilder
    16ms

勝負になってません。

単純な繰り返しなのに速度が著しくない場合、文字列を疑ってみてはいかがでしょうか。

Stringを+で連結した場合、インスタンスを作成しなおしているため時間がかかる(らしい)
for文やwhile文で連結を多用するならStringBuilder。
普段はStringで扱っていたほうが何かと便利かと。







-Java, プログラム

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

Jenkinsにてカバレッジ測定 | JaCoCo

環境 CentOS 6.7 Jenkins 1.631 JDK 1.7 Jenkinsプラグイン JaCoCo plugin 1.0.19 pom.xml設定 [crayon-5adfd12f4be8 …

no image

Gitの使い方まとめ | 初心者におすすめ

Gitとは 一般的に、バージョン管理システムと呼ばれているものです。 比較対象としてCVSやSVNが集中型。 Gitは分散型と呼ばれています。 SVNから移行する際は、ローカルリポジトリが有るため一手 …

no image

eclipseでSAStrutsのWAR作成

Doltengプロジェクトのパッケージで、ビルドパスはWEB-INF直下のlibで通す。 css等のディレクトリは、webapp配下→/プロジェクト配下。 eclipseからDoltengプロジェクト …

no image

VisualStudio2013のデータソース選択時にSQLiteが表示されない

ADO.NET Entity Data Modelを追加しようとして・・・ VisualStudio2013でSQLite(EntityFramework)を扱おうとして、ハマった。 助けていただいた …

CentOS7にjenkinsをyumインストール

前提条件 CentOS7 mini(Vagrant)でyum updateを実行しただけ 準備 Javaが必要なため、確認

入ってませ …

カテゴリー