Win a copy of The Java Performance Companion this week in the Performance forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Algorithm to generate random token ids.

 
pawan chopra
Ranch Hand
Posts: 417
jQuery Mac Objective C
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi All,

I want to know what kind of algorithm I can use to generate a random token which is combination of String and Integer.
 
Sebastian Janisch
Ranch Hand
Posts: 1183
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
you could create an array of available characters then iterate for n steps (where n is the number of characters you want the token to consist of) and append a random item from the array to the token.
 
manoj r patil
Ranch Hand
Posts: 181
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Math.random() ???
 
Sebastian Janisch
Ranch Hand
Posts: 1183
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
exactly
 
Gopi Chella
Ranch Hand
Posts: 53
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
You can use priority Queue also with the combination of Random class.
 
Priya dharshini
Ranch Hand
Posts: 78
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator


This method returns unique ID which is combination of String and Integer.
 
Campbell Ritchie
Sheriff
Pie
Posts: 49447
62
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Are you using truly random numbers (which entail possible duplications) or do you want random sampling from a diminishing population, in which case your values will be unique? For random sampling from a diminishing population, put values into a List (probably via a Set to avoid duplicates) and remove the value selected; the List will gradually become smaller, so your random numbers must be chosen from a diminishing range.
Alternative: shuffle a List and choose the first n values.
Remember the Random class and Math.random() are not truly random, but do present possible duplications. If you use Math.random() long enough, you are guaranteed to receive duplicate values.
 
Rob Spoor
Sheriff
Pie
Posts: 20552
57
Chrome Eclipse IDE Java Windows
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
That's true for each (pseudo) random number generator. Given a possible N values, there is always a chance of 1 out of N that the next value will be exactly the same.
 
pawan chopra
Ranch Hand
Posts: 417
jQuery Mac Objective C
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Campbell Ritchie wrote:Are you using truly random numbers (which entail possible duplications) or do you want random sampling from a diminishing population, in which case your values will be unique?



we do not want any duplications. Actually we have a user name based on that we want to generate a token id.
 
Campbell Ritchie
Sheriff
Pie
Posts: 49447
62
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Do you know the user names will be free from duplications?
 
pawan chopra
Ranch Hand
Posts: 417
jQuery Mac Objective C
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Campbell Ritchie wrote:Do you know the user names will be free from duplications?


Yes. we are sure about that. I am doing like this for now. username+username.hashcode(). It will be unique.
 
Rob Spoor
Sheriff
Pie
Posts: 20552
57
Chrome Eclipse IDE Java Windows
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
username + username.hashCode() is just as unique as username is. username.hashCode will always return the same thing for the same value of username, so you might as well have written username + 42 or simply username.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic