I want to use UUIDs whose alphanumeric order is the same as their
chronological order. So I'm generating Version 4 UUIDs (
http://en.wikipedia.org/wiki/Universally_Unique_Identifier#Version_4_.28random.29)
as follows:

public class Id
{
   static Random random = new Random();

   public static String next()
   {
      // Format: xxxxxxxx-xxxx-4xxx-8xxx-xxxxxxxxxxxx

      long high = (System.currentTimeMillis() << 16) | 0x4000 |
random.nextInt(4096);
      long low = (random.nextLong() >>> 4) | 0x8000000000000000L;

      UUID uuid = new UUID(high, low);

      return uuid.toString();
   }
}

Is there anything wrong with this idea?

Reply via email to