java - What's a quick hash, which will map UUIDs to the unit interval? -


i'm looking hash uuids unit interval, on hot path application.

this sounds should have been efficiently solved, searches haven't yet turned solution. know of (and have reference sample implementation) quick/efficient hash of uuids unit interval (obviously while preserving of random distribution possible).

this method keeps "uniqueness level" of uuid one-to-one bijection of each large number corresponding float number on interval between [1/maxuuid,1].

after removing hyphens, uuid string simple hex string. convert bigint , divide maximal possible uuid-number(128 bit ff...fff).

string hexuuid = uuidstr.replaceall('-',''); bigdecimal uuid = new bigdecimal(new biginteger(hexuuid , 16)); bigdecimal maximal = new bigdecimal(new biginteger("ffff...ff",16)); // compute once!! bigdecimal floatid = uuid.divide(maximal, mathcontext.decimal128); 

probably, have play characters case (to lowercase before converting number), play big decimal divide parameters (scale, rounding mode) main idea presented in code above.


Comments

Popular posts from this blog

Rendering JButton to get the JCheckBox behavior in a JTable by using images does not update my table -

javascript - Using jquery append to add option values into a select element not working -

Android soft keyboard reverts to default keyboard on orientation change -