此文章是vip文章,如何查看?  

1,点击链接获取密钥 http://nicethemes.cn/product/view29882.html

2,在下方输入文章查看密钥即可立即查看当前vip文章


JAVA生成短8位UUID

  • 时间:
  • 浏览:
  • 来源:互联网

短8位UUID思想其实借鉴微博短域名的生成方式,但是其重复概率过高,而且每次生成4个,需要随即选取一个。

本算法利用62个可打印字符,通过随机生成32位UUID,由于UUID都为十六进制,所以将UUID分成8组,每4个为一组,然后通过模62操作,结果作为索引取出字符,

这样重复率大大降低。


经测试,在生成一千万个数据也没有出现重复,完全满足大部分需求。

代码贴出来供大家参考。


[java] view plaincopy
  1. public static String[] chars = new String[] { "a""b""c""d""e""f",  
  2.             "g""h""i""j""k""l""m""n""o""p""q""r""s",  
  3.             "t""u""v""w""x""y""z""0""1""2""3""4""5",  
  4.             "6""7""8""9""A""B""C""D""E""F""G""H""I",  
  5.             "J""K""L""M""N""O""P""Q""R""S""T""U""V",  
  6.             "W""X""Y""Z" };  
  7.   
  8.   
  9. public static String generateShortUuid() {  
  10.     StringBuffer shortBuffer = new StringBuffer();  
  11.     String uuid = UUID.randomUUID().toString().replace("-""");  
  12.     for (int i = 0; i < 8; i++) {  
  13.         String str = uuid.substring(i * 4, i * 4 + 4);  
  14.         int x = Integer.parseInt(str, 16);  
  15.         shortBuffer.append(chars[x % 0x3E]);  
  16.     }  
  17.     return shortBuffer.toString();  
  18.   

本文链接http://element-ui.cn/news/show-576843.aspx