Java 唯一ID生成器「建议收藏」

Java 唯一ID生成器「建议收藏」前言:   前段时间,写了一个ID生成,发在群里,结果遭到别人嘲笑,心有不甘,于是思来想去,决定在重新写一个ID生成器。此方法生成的ID理论上也是会有重复,但是这个概率太低太低,低到可以忽略不计。原理:使用当前时间戳+指定长度的随机数,并随机打乱字符串。可以生成指定长度的纯数字的ID。具体实现代码:/***普通Id生成器,用时间戳生成+2位随机数生成,*此方法

大家好,又见面了,我是你们的朋友全栈君。

前言:

     前段时间,写了一个ID 生成器,发在群里,结果遭到别人嘲笑,心有不甘,于是思来想去,决定在重新写一个ID生成器。此方法生成的ID理论上也是会有重复,但是这个概率太低太低,低到可以忽略不计。

原理:

使用当前时间戳+指定长度的随机数,并随机打乱字符串。可以生成指定长度的纯数字的ID。

具体实现代码:

/**  * 普通Id生成器,用时间戳生成+指定位随机数生成,  * 此方法用于单机应用并且并发量不高的情况之下  *  * @return  */ public static String getId() {
    //获取当前时间戳
    String str = String.valueOf(System.currentTimeMillis());
    List list = new ArrayList();
    //将时间戳放入到List    for (Character s : str.toCharArray()) {
        list.add(s.toString());
    }
    //随机打乱
    Collections.shuffle(list);
    //拼接字符串,并添加2(自定义)位随机数
    return String.join("", list) + randomNumber(2);
}


/**  * 生成指定长度的一个数字字符串  *  * @param num  * @return  */ public static String randomNumber(int num) {
    if (num < 1) {
        num = 1;
    }
    Random random = new Random();
    StringBuilder str = new StringBuilder();
    for (int i = 0; i < num; i++) {
        str.append(random.nextInt(10));
    }
    return str.toString();
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/148971.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月16日 下午1:16
下一篇 2022年6月16日 下午1:36


相关推荐

  • 学java还是python哪个就业好_JAVA和Python哪个好就业?

    学java还是python哪个就业好_JAVA和Python哪个好就业?Python和Java是现在最火的两种编程语言,Python和Java的就业前景都很好,具体选择哪一个要看你自身对哪种编程语言更感兴趣。Python的就业方向和前景学习Python以后可以从事数据分析工作,无论是什么行业,做数据分析的人似乎都离不开Python,因为Python可以帮助他们提高工作效率。也可以从事网络编程工作,Python可以非常方便的完成网络编程的工作,提供了众多的解决方案和模块…

    2022年7月8日
    23
  • DuplicateHandle用法

    DuplicateHandle用法The nbsp DuplicateHan Thereturnedd sprocessspac 从当前进程复制句柄到其他进程空间 ALLofthefoll Createa

    2026年3月19日
    2
  • css 滚动条样式和table

    css 滚动条样式和table1 滚动条美化 webkit scrollbar 滚动条整体部分 webkit scrollbar track 滚动条滑轨 webkit scrollbar track piece 内层轨道 滚动条中间部分 webkit scrollbar thumb 滚动条滑块 webkit scrollbar button 滑轨两头的监听按钮 webkit scrollbar button star

    2026年3月26日
    2
  • MySql修改表名的两种方法

    MySql修改表名的两种方法一、renamerenametable旧表名to新表名;renametablemysutonew_su;二、alteraltertable旧表名rename[as]新表名altertablemysurenameasnew_su;

    2022年6月1日
    38
  • 思维导图怎么画简单又漂亮?思维导图制作方法分享

    思维导图怎么画简单又漂亮?思维导图制作方法分享思维导图怎么画简单又漂亮 思维导图是现下较为流行的一种思维整理工具 想要绘制一份漂亮的思维导图 可以从思维导图的整体布局 风格样式等方面入手 下面 MindNow 就给大家分享下如何绘制出简单又漂亮的思维导图 1 页面布局首先一份思维导图好不好看主要就是整体的布局 若是思维导图整体凌乱不堪 自然就不会美观大方 因此我们在创作思维导图时 可以根据不同的场景需求选择合适的导图结构 以 MindNow 思维导图软件为例 MindNow 目前支持 8 大常用导图结构 具体包含 向右逻辑图 思维导图 鱼骨图 向下分类图 组织结构图

    2026年3月18日
    2
  • reaver使用相关[通俗易懂]

    reaver使用相关[通俗易懂](非TP-LINK路由推荐–d9–t9参数防止路由僵死reaver-imon0-bMAC-a-S–d9–t9-vv)小结-学习时应因状况调整参数(-c后面都已目标频道为1作为例子)目标信号非常好: reaver -i mon0 -bMAC -a -S -vv -d0 -c1目标信号普通: reaver -i mon0 -bMAC

    2022年5月4日
    111

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号