web-dev-qa-db-ja.com

Java UUID.randomUUIDの衝突が発生する可能性はどれくらいですか?

Javaで一意のファイルを作成する必要があり、UUID.randomUUIDを使用して名前を生成する予定です。これに衝突する可能性はありますか?これについて心配する必要はありませんか?

Integer attemptsToGenerateUUID = 1;

while (true) {
    UUID fileUUID = UUID.randomUUID();

    if (fileDoesNotExistwith this UUID name) {
        save file;
        break;
    }

    attemptsToGenerateUUID += 1;

    if (attemptsToGenerateUUID > 64) {
        return false;
    }
}
32
daniels

wikipedia によると、ランダムUUIDの重複の可能性に関して:

次の100年間、毎秒10億個のUUIDを生成して初めて、複製が1つだけ作成される可能性は約50%になります。別の言い方をすれば、地球上のすべての人が6億UUIDを所有している場合、1回の重複の可能性は約50%になります。

同じ理由がJavaのUUIDの実装にも当てはまると思います。いいえ、これについて心配する必要はありません。

81
Óscar López