J'ai besoin de créer des fichiers uniques dans Java et je prévois d'utiliser UUID.randomUUID pour générer leurs noms. Y a-t-il une chance d'obtenir une collision pour cela? Dois-je faire quelque chose comme ci-dessous os I ne devrait pas s'en inquiéter?
Integer attemptsToGenerateUUID = 1;
while (true) {
UUID fileUUID = UUID.randomUUID();
if (fileDoesNotExistwith this UUID name) {
save file;
break;
}
attemptsToGenerateUUID += 1;
if (attemptsToGenerateUUID > 64) {
return false;
}
}
Selon wikipedia , concernant la probabilité de doublons dans les UUID aléatoires:
Ce n'est qu'après avoir généré 1 milliard d'UUID par seconde au cours des 100 prochaines années, la probabilité de créer un seul doublon serait d'environ 50%. Ou, pour le dire autrement, la probabilité d'un double serait d'environ 50% si chaque personne sur terre possédait 600 millions d'UUID.
Je suppose que le même raisonnement s'applique à la mise en œuvre Java de l'UUID. Alors non, vous ne devriez pas vous en soucier.