【Java】UUIDとは?生成方法と使い方を初心者向けに解説
  • facebookページ
  • twitterページ
  • 2021.02.25

    【Java】UUIDとは?生成方法と使い方を初心者向けに解説

    Javaのプログラム開発で、絶対に重複しない値が必要な場合「UUID」を利用することが可能です。

    本記事では、UUIDとは何なのかといった基本的な概要から実際の生成方法までご紹介していきます。

    UUIDとは


    UUIDは、ソフトウェア上でオブジェクトを一意に識別するための識別子です。

    「Universally Unique Identifier」の略称で、世界中で唯一の値(ユニークな値)となります。

    概要

    UUIDの概要については、Wikipediaに下記のように記述されています。

    UUIDは128ビットの数値だが、16進法による550e8400-e29b-41d4-a716-446655440000というような文字列による表現が使われることが多い。元来は分散システム上で統制なしに作成できる識別子として設計されており、したがって将来にわたって重複や偶然の一致が起こらないという前提で用いることができる。

    Wikipedia

    「重複や偶然の一致が起こらない前提」と記述されていますが、天文学的な数値でしか重複は起こり得ないため、一般的な利用用途では完全な一意の値が生成出来るとの認識で問題ないでしょう。

    使い方

    UUIDは、必ず一意の値として定義したい場合に利用することが可能です。

    例えば、同一パスに大量の一時ファイルを吐き出し利用する場合などが挙げられます。

    JavaでUUIDを生成する方法


    Javaのプログラム開発でUUIDを利用したい場合には「randomUUID」メソッドを利用することが可能です。

    「java.util.UUID」クラスより提供されているメソッドです。

    基本構文

    randomUUIDの利用方法は非常に簡単で、下記のように記述します。

    実行すると下記のような値が出力されます。

    randomUUIDメソッドの返却値

    randomUUIDメソッドの返却値はUUID型として返却されます。

    文字列として扱いたい場合には、「toString」メソッドを使用して文字列変換を行います。

    JavaでUUIDを生成する具体的なサンプル


    ここまででUUIDの生成方法を確認出来たので、具体的なサンプルでも確認してみましょう。

    今回は同一パスに対して生成したファイル名を、UUIDで生成した値を使って指定するサンプルです。

    サンプルコード

    100件分のランダムなファイル名を付与して、「tmp」フォルダにテキストファイルを生成するサンプルです。

    ポテパンダの一言メモ

    サンプルプログラムのため、ファイルへの書き込み処理は行っていません。

    実行結果

    上記結果のように、ファイル名が重複することはなく、1,000件でも10,000件でもそれ以上でも重複することはありません。

    Javaで重複しない値を生成したいならUUIDを利用するのが確実


    プログラム開発では、一意のデータとして判別させたいというケースが頻繁に起こります。

    よく利用される方法に「日時(timestamp)」や「Math.random」メソッドを利用するケースが挙げられます。

    これらの方法でも重複する確率はかなり低いのですが、UUIDと比較すると確率は高くなってしまいます。

    日時(timestamp)の利用

    timestampを利用して、日時で一意の値として扱っているプログラムもたくさんありますが、日時の場合は重複する確率があります。

    他の誰かが同一日時で同じ処理を実行することも考えられなくはないですよね。

    ミリ秒単位で設定している場合、発生率はかなり低いですが、実際に起こり得るくらいには高い確率で発生します。

    Math.randomメソッドの利用

    JavaのMathクラスで「random」メソッドを利用することでも不規則な数値を生成することが出来ます。

    Main.java

    実行結果

    このような出力結果となり、ほとんど重複する可能性はありません。

    一般的なプログラムであれば要件を満たせるとも考えられますが、一意の値を担保するような利用用途として提供されているわけではないため、 UUIDを利用した方が確実ということです。

    さいごに: JavaのrandomUUIDメソッドを活用して一意な値を生成しよう


    本記事では、UUIDの基本情報からJavaで利用可能なrandomUUIDメソッドの使い方についてご紹介してきました。

    一意の値を生成する方法には、厳密さにもよりますが記事内でも紹介したように様々な方法が用いられます。

    ただ厳密に重複させたくない場合には、一意の値を生成することを目的として提供されている「ramdomUUID」の利用をぜひ検討してみましょう。



    優良フリーランス案件多数掲載中!
    フリーランスエンジニアの案件をお探しなら
    ポテパンフリーランス

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE