首页 > 编程知识 正文

不含重复字符的最长子串长度JAVA,java生成不重复的随机数

时间:2023-05-03 05:40:53 阅读:32213 作者:1940

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

本算法使用62个可打印字符随机生成32位的UUID。 由于UUID都是十六进制数,因此将UUID分为8个组,每4个为一组,在模具62中操作的结果,作为索引取出字符

这样,重复率大幅下降。

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

代码如下。 可以复印。

必须在唯一不重复、不需要很长时间的场景中使用,如常规许可证密钥、二维码等。

package org.sang.test; import java.util.UUID;/* * @ author : chuxia 0811 * @ date :2021/5/1122336018 * @ description : */publiccclassuidcode { publicstatiotion ' e ',' f ',' h ',' I ',' j ',' k ',' l ',' m' 'z ','0','1','3','4','5',' 6,' string uuid=uuid.random uuid (.tostring ) ).replace('-',''); for(intI=0; i 8; I ) stringstr=uuid.substring(I*4,I*4); intx=integer.parseint(str,16 ); short buffer.append (chars [ x %0x3e ]; } return shortBuffer.toString (; } publicstaticvoidmain (string [ ] args ) system.out.println ) generateshortuid (); }动作如下。

L2C3q6ce

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。