获得Java UUID的可能性有多大?randomUUID碰撞



我需要在Java中创建一些唯一文件,我计划使用UUID。随机uid来生成它们的名字。这有可能发生碰撞吗?我是否应该做一些类似咆哮的事情,这样我就不用担心这个了?

Integer attemptsToGenerateUUID = 1;
while (true) {
    UUID fileUUID = UUID.randomUUID();
    if (fileDoesNotExistwith this UUID name) {
        save file;
        break;
    }
    attemptsToGenerateUUID += 1;
    if (attemptsToGenerateUUID > 64) {
        return false;
    }
}

根据wikipedia,关于随机uuid中重复的概率:

只有在接下来的100年里每秒产生10亿个uuid之后,只产生一个副本的概率才会是50%左右。或者,换句话说,如果地球上每个人都拥有6亿个uuid,那么一个重复的概率将是50%左右。

我想同样的推理也适用于Java的UUID实现。所以不用担心这个

最新更新