デザインが苦手な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

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

no image

windowsアプリでSQLiteの使用 | C# Visual Studio 2013

ローカルデータベース 簡単な販売管理システムを作成中で DBサーバを立てる事もできず、クライアントにDBファイルを作成して、色々とやろうと検討中。 完全に自分用メモ、お世話になったサイトまとめ。 候補 …

no image

Java | 文字列の切り出し(substring)

Javaで指定文字を切り出す 一般的には、substring()を使用すると思います。 (というかそれしか知りません・・・) で、普段はどう使っているかというと [crayon-5b7ac313af8 …

no image

eclipseでSAStrutsのWAR作成

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

no image

ドットインストール|プログラミング学習サイト

今回はいつもお世話になっているサイトのご紹介。 ドットインストール さん http://dotinstall.com/ 動画でプログラミングを丁寧に教えてくれます。 一本の動画は約3分。 ちょっとした …

no image

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

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

カテゴリー