IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

créer un id quasi unique?


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    220
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 220
    Par défaut créer un id quasi unique?
    Bonjour,

    je voudrait créer un id pour que la probalité de création soit quasi unique...
    Voila ce que je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    		Date date = new Date();
    		Random randd = new Random();
     
    		return (""+date.getTime() + randd.nextInt());
    Comment augmenter la probalité pour que celui ci soit quasi-unique?

  2. #2
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    déjà sur un Random, si tu fais un .nextLong(), t'as une chance sur 2^64 d'avoir collision entre 2 id...

  3. #3
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    220
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 220
    Par défaut
    merci pour le nextLong, mais personne n'a d'autres idees, genre ajout emplacement memoire de l'objet, num carte reseau, ...

  4. #4
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Citation Envoyé par samplaid
    merci pour le nextLong, mais personne n'a d'autres idees, genre ajout emplacement memoire de l'objet, num carte reseau, ...
    Ça dépend pour quoi tu en as besoin de ton id...
    On a besoin de plus de détails

  5. #5
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    220
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 220
    Par défaut
    j'ai besoin de générer des ids pour faire des synchronisations de fichiers, lorsque je fais la synchronisation de fichier, il faut que je puisse distinguer mes records par des ids.

  6. #6
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Citation Envoyé par samplaid
    j'ai besoin de générer des ids pour faire des synchronisations de fichiers, lorsque je fais la synchronisation de fichier, il faut que je puisse distinguer mes records par des ids.
    Qu'appelles-tu "synchronisation de fichiers"?
    Tu ne peux pas incrémenter de 1 à chaque fois un id?

  7. #7
    Membre chevronné Avatar de spekal
    Inscrit en
    Mai 2005
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 502
    Par défaut
    Il y a la classe UUID, mais, au vu de ce que tu dis, j'ai l'impression que simple nombre incrémenté te suffirait, comme le suggère @om. La classe UUID est intéressante lorsque l'on veut maintenir un identificateur sur un réseau, et qu'il est difficile de centraliser la gestion de ces identificateurs. Cela n'a pas l'air d'être ton cas ?

  8. #8
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Ou un hachage du fichier (genre MD5 ou SHA)

  9. #9
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    220
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 220
    Par défaut
    je ne peut pas incrémenté mon id car mon application peut tourner sur plusieurs machines par exemple. Et lorsque je synchronise les fichiers des différentes machines certains fichier auront le meme ids or si j'ai le meme id sur des machine differentes c'est que c'est le meme fichier de base. Comprenez-vous?

  10. #10
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    c'est pour ça que je propose le hachage des fichiers
    De plus ça te permet d'en vérifuer un tant soit peu l'intégrité

  11. #11
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Le hash permet de savoir (avec très peu de chance de se tromper) si 2 fichiers sont identiques... c'est ce que tu veux, non?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 12/11/2013, 13h47
  2. Réponses: 3
    Dernier message: 28/12/2011, 10h06
  3. Réponses: 15
    Dernier message: 27/12/2009, 12h13
  4. Déploiement : créer un setup.exe unique avec Framework 3.5 intégré au cas où
    Par zax-tfh dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 11/05/2009, 13h25
  5. Réponses: 2
    Dernier message: 30/03/2009, 10h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo