2017-11-01 3 views
0

分散システムでクラスタ全体で一意のIDを生成しようとしており、UUIDを生成することを選択しました。 UUIDは128ビットの16進数で、2回生成される可能性は非常に非常に低いです。私の質問は、私はどのように長い値に16進文字列を変換するだろうか?以下は私のコードとその出力です。私は別の方法を試みたが、私は例外を得続けている。UUIDの変換方法

コード:

for (int i = 0; i < 10; i++) { 
    UUID uuid = UUID.randomUUID(); 
    System.out.println("Generated UUID: " + uuid); 
} 

出力:

Generated UUID: 7a8c2c99-a378-4481-a4d5-0b90dae8d220 
Generated UUID: d93da730-a261-4617-a0cb-eaa3441a956d 
Generated UUID: bfaa2c28-fbde-42aa-a3ff-3db0709b5fa9 
Generated UUID: df131f0c-b3aa-4132-bcc7-1268f21b0a1b 
Generated UUID: 066ecfd0-144b-441d-848a-8b2b425d93f8 
Generated UUID: aeaabb6b-a03e-4afe-ac2e-a08902c8490c 
Generated UUID: 19953f8d-b9f5-418e-9577-6222ef3ab3f8 
Generated UUID: d936862f-7e63-4384-9694-24714b8953ab 
Generated UUID: f0f979e4-d570-4867-afc0-fbf92ef3c570 
Generated UUID: e504165f-823e-4dea-b520-a323032bd37c 

答えて

1

ことはできません。 Javaのプリミティブタイプlongは64ビットタイプです。情報を失うことなく64ビットに128ビットを収めることはできません。

関連する問題